繁体   English   中英

SQL WP查询中的PHP变量

[英]PHP Variables inside SQL WP Query

我正在使用wordpress,并且创建了一些自定义功能。 它们工作正常,现在我要在查询中添加排序。

function select_category_events($category, $order)  {
    global $wpdb;
    $table_name = $wpdb->prefix."table";
    $sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND  active = '1' ORDER BY '" . $order . "'");
    return $sql;
}

如果我删除ORDER BY并且只有:

$sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND  active = '1'");

工作正常。 如果我将$ order替换为'name'或要进行排序的字段,则它可以正常工作,仅当我使用变量传递它时,它才会忽略它。 它仍然显示结果,只是未排序。 这是我调用该函数的方式。

$order = 'name';
$events = select_category_events($category, $order);

正如我已经说过的那样,$ category具有有效的类别,它可以正常工作,只是在将变量用于排序时。 我的语法是否正确,还是应该以其他方式处理?

删除引号,您要按列而不是按字符串排序

ORDER BY $order 

没问题,请将您的查询修改为:-

"select * from $table_name where category = '$category'  AND  active = '1' ORDER BY '$order' ";

如果工作正常,则将其标记为答案,否则,请告知我运行此查询后得到的信息...

您必须使用这样的查询:-

$sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND  active = '1' ORDER BY " . $order);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM