我有这段代码:
$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,但它不会返回任何结果
答案 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代码中工作。
谢谢。