SQL WP Query中的PHP变量

时间:2014-01-21 09:18:24

标签: php mysql sql wordpress content-management-system

我正在使用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'");

工作正常。如果我用'name'或一个字段替换$ order来排序,它运行正常,就在我使用变量传递它时它只是忽略它。它仍然显示结果,它们只是未分类。这是我如何调用该函数。

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

$ category有一个有效的类别,正如我所说的,它运行正常,只是当变量被用于排序时。我的语法不正确,还是应该以不同的方式解决这个问题?

3 个答案:

答案 0 :(得分:2)

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

排序
ORDER BY $order 

答案 1 :(得分:0)

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

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

如果工作正常,请将其标记为答案,如果没有,请告知我在运行此查询后您得到了什么......

答案 2 :(得分:0)

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

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