WordPress错误:Missing argument 2 for wpdb::prepare()

使用WordPress 3.5 的朋友在使用某些插件时,也许会遇到这样的WordPress错误:Missing argument 2 for wpdb::prepare():

wpdaxue.com-201212226

报错原因

从提示语来看,是缺少了 wpdb::prepare() 的第二个参数,从技术上 WordPress 这样修改 prepare 并没有错,因为这是用来组装 SQL 语句的方法, 按常理来说必须有带变量的字符串作为第一个参数和第二个作为变量的参数,这是为了避免 SQL 注入所引起的安全问题。但是 WordPress 从 2.2 或者更早版本允许了忽略第二个参数的写法, 现在突然令第二个参数成为必填, 必然导致很多主题和插件不能正常使用。

解决办法

1.打开出错的文件(类似上图加亮的文件),还有出错行数,这样我们可以很方便地找到出错的地方,或者搜索$wpdb->prepare

2.为该方法添加一个空串作为第二个参数, 比如: $wpdb->prepare('xxx'); 改为 $wpdb->prepare('xxx', ''); 即可.

来源:

https://www.wpdaxue.com/wpdb-prepare-fixed.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?