在 Wordpress 3.5 之前,我有一个完美运行的 wpdb prepare 语句。这是我的线:
$post_id = $wpdb->get_var($wpdb->prepare( "SELECT a.post_id
FROM $metatable AS a
JOIN $metatable AS b ON a.post_id = b.post_id
WHERE a.meta_value = '$valuex1' AND b.meta_value = '$valuex2'"));
现在使用 Wordpress 3.5,这会返回一个警告,因为它没有被完全清理。我已按照 Wordpress 的建议对其进行了修改以使用占位符:
$post_id = $wpdb->get_var($wpdb->prepare("SELECT a.post_id FROM $metatable AS a JOIN $metatable AS b ON a.post_id = b.post_id WHERE a.meta_value =%d AND b.meta_value =%s",$valuex1,$valuex2));
但是,它不再从数据库中检索正确的信息。我修改后的查询有问题吗?如何更改它以使其再次工作?
谢谢你的帮助。