Wpdb::Prepare()问题缺少参数2

时间:2014-08-06 作者:Phill Healey

我必须将社区组织的WP安装从版本2.9.1更新到当前的3.9.1。

该安装有两个没有文档记录的定制插件。

我刚刚执行了WP版本更新,现在看到一条警告(缺少参数2wpdb::prepare()) 在与这些定制插件之一的代码中的以下行相关的每个页面上:

$rows = $wpdb->get_results($wpdb->prepare("SELECT id, name FROM ".$table_name));
从我在线阅读的内容来看,这是由于编码发生了变化,需要将2个值发送到wpdb::prepare(), 但我不知道上面给出的代码行需要如何更改。

如果有人能帮我,我会非常感激的。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

这并不完全是代码的改变,而是为了更好地告知人们他们没有正确使用该方法。

符合wpdb 您需要正确传递值的文档,否则它们将无法在查询中正确转义。

在你的情况下,它会变成这样:

$wpdb->prepare("SELECT id, name FROM %s", $table_name)
请注意,如果$table_name 不是来自任何不可信的输入,那么在这样的情况下就不需要准备查询了。

结束