$wpdb->prepare 语句的结果为空

Results are empty with $wpdb->prepare statement

我在 WordPress 中工作,我的 $wpdb select 查询在没有准备的情况下工作,但是当我使用正确的转义并使用 $wpdb->prepare ... 准备时,结果永远不会显示,结果显示我不使用 %s 并准备...我缺少什么...谢谢,检查屏幕中没有错误显示准备,结果也没有显示。请指导使用什么方法从 sql 注入中保存。

这项工作

$sql = "SELECT 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category, Sum(votes.votes) AS votessum, describebaby, current FROM 1user LEFT JOIN votes on 1user.uid=votes.uid GROUP BY 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category HAVING 1user.category = '$category' && 1user.competition = '$comp' ORDER BY 1user.uid DESC";

这行不通

$sql = "SELECT 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category, Sum(votes.votes) AS votessum, describebaby, current FROM 1user LEFT JOIN votes on 1user.uid=votes.uid GROUP BY 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category HAVING 1user.category = %s && 1user.competition = %s ORDER BY 1user.uid DESC";


$results = $wpdb->get_results($wpdb->prepare($sql),$category,$comp) or die(mysql_error());

你在错误的地方添加了括号,它需要在你的变量之后。

$results = $wpdb->get_results($wpdb->prepare($sql,$category,$comp)) or die($wpdb->print_error());