That is not how $wpdb->prepare
works. 您输入prepare
带的字符串sprintf
-如占位符和适当的替换值。
占位符
prepare的查询参数接受类似sprintf()的占位符。支持%s(字符串)、%d(整数)和%f(浮点)格式。(自从在版本2.3中将函数添加到core后,%s和%d占位符就可用,%f仅在版本3.3后可用。)除非转义,否则任何其他%字符都可能导致分析错误。SQL字符串文本中的所有%字符(包括LIKE通配符)必须以%%的形式进行双-%转义。在查询字符串中,所有%d、%f和%s都不带引号。请注意,%d占位符只接受整数,因此不能通过%d传递具有逗号值的数字。如果需要逗号值,请使用%f作为浮点。
在你的情况下,我猜是这样的:
$sqll = "SELECT Sum(votes.votes) AS votessum FROM votes WHERE votes.uid = %d && votes.competition = %s";
$reel = $wpdb->get_var($wpdb->prepare($sqll,$uid,$comp));