繁体   English   中英

在WordPress的MySQL占位符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM