wpdb prepare()缺少参数2

时间:2015-09-15 02:32:46

标签: php mysql wordpress

请帮助我。

我收到了这个错误:

  

缺少wpdb :: prepare()

的参数2

对于这一行:

$myrows = $wpdb->get_results($wpdb->prepare("SELECT name, term_id
                                             FROM wp_categoryindex
                                             WHERE alpha IN ('0','1','2','3','4','5','6','7','8','9')")); 

谢谢!

2 个答案:

答案 0 :(得分:2)

为什么您同时使用get_results()prepare()这两项功能?您是否了解这些功能?

我认为这可能对你有用。你可以试试这个:

$myrows = $wpdb->get_results("SELECT name, term_id
                                             FROM wp_categoryindex
                                             WHERE alpha IN ('0','1','2','3','4','5','6','7','8','9')");

或者

$myrows = $wpdb->prepare("SELECT name, term_id
                                             FROM wp_categoryindex
                                             WHERE alpha IN %s", "('0','1','2','3','4','5','6','7','8','9')");
$getData = $wpdb->get_var($myrows);

答案 1 :(得分:0)

好吧,在快速RT*M之后发现系统指出您缺少的第二个参数应该是支持sprint()-like占位符的参数,而这些参数是您没有的。因此,您需要查看方法的文档,并考虑是否要使用替换功能或使用不需要替换功能的其他方法,例如query()

参数

  • $查询 (字符串)(必需)使用sprintf()的查询语句 - 如占位符

  • 的$ args (array | mixed)(必需)如果被调用为 http://php.net/vsprintf vsprintf(),则替换为查询占位符的变量数组,或者如果被调用,则替换为查询占位符的第一个变量 http://php.net/sprintf sprintf()。

  • 的$ args,... (mixed)(必需)如果被调用为 http://php.net/sprintf sprintf(),则替换为查询的占位符。