[英]placeholder in wordpress mysql
如何正确将变量放在WordPress的mysql语句中?
我尝试过date = %d
,但是它不起作用,应该只执行date='$date'
:
$date = $v_date->DATE;
$count = $wpdb->get_results($wpdb->prepare(
" SELECT DISTINCT `date`,
(select subscriber_count FROM wp_email_signup where LIST_NAME = 'B' AND date = %d) as 'B',
(select subscriber_count FROM wp_email_signup where LIST_NAME = '2D' AND date = %d ) as 'D',
(select subscriber_count FROM wp_email_signup where LIST_NAME = 'F' AND date = %d ) as 'F'
FROM wp_email_signup WHERE date = %d", $date));
您的日期不是整数,这就是为什么它不起作用。
prepare的查询参数接受类似sprintf()的占位符。
%s(字符串)
%d(整数)
%f(浮动)
支持格式。 (自从该功能在2.3版中添加到内核以来,%s和%d占位符已经可用,%f版仅从3.3版开始才可用。)任何其他%字符都可能导致解析错误,除非将其转义。
SQL字符串文字中的所有%字符(包括LIKE通配符)都必须以double-%的形式转义为%%。 %d,%f和%s的所有内容在查询字符串中均应保留不引用。
请注意,%d占位符仅接受整数,因此您不能通过%d传递具有逗号值的数字。 如果需要逗号值,请改用%f作为浮点数。
更多信息https://codex.wordpress.org/Class_Reference/wpdb#Placeholders
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.