mysql if语句带变量

时间:2014-01-06 11:58:42

标签: mysql

我有这段代码:

$post = 0;
$rows = $wpdb->get_results( "select * from table where if('".$post."' != 0, id = '".$post."', id != 0) " );

如果$post没有值0,我需要获取所有ID为$post的行,如果$post的ID为0,我需要删除所有行没有id 0,但它不会返回任何结果

2 个答案:

答案 0 :(得分:2)

如果语句无法用于制作查询的部分动态,请尝试改为:

"select * from table where " . ($post ? "id = $post" : "id != 0")

这假定$post不是用户提供的。如果是,你必须确保它是一个数字,而不是恶意的。

答案 1 :(得分:0)

而不是:

$post = 0;

$rows = $wpdb->get_results( "select * from table where if('".$post."' != 0, id = '".$post."', id != 0) " );

首先尝试这样做:

$sql = "select * from table where if('".$post."' != 0, id = '".$post."', id != 0)";

echo "$sql";

复制输出并尝试在您的实际数据库中手动运行它。如果它会显示结果,那么它也将在你的wp代码中工作。

谢谢。