php prepaer输出参数,php – 警告:缺少wpdb :: prepare()的参数2,

WordPress 3.5进行了一些重大更改,以减少某些安全风险,例如

SQL Injection.由于插件开发人员发送完整查询而不是分离出参数,因此wpdb :: prepare方法被不安全地使用.这意味着“准备好”的语句没有准备好,实际上是直接将参数传递给查询,这是一个安全禁忌.从3.5开始,此方法现在需要三个参数.

要解决您的直接问题,请编辑您的php.ini文件,找到error_reporting的行并将其更改为以下内容…

error_reporting(E_ALL & ~(E_NOTICE|E_WARNING));

重启服务器.

这将防止报告所有次要脚本错误.

或者,将错误发送到日志文件.在php.ini中,找到这一行(取消注释),并将其更改为…

error_log "/path/to/php-error.log"

这样可以防止错误显示在您的网站上.相反,它们将被写入只有您可以看到的日志.

如果此错误困扰您,您可能会尝试让流氓插件使用虚拟值.我们可以看到wpdb :: prepare方法有三个参数……

$wpdb->query(

$wpdb->prepare(

"

DELETE FROM $wpdb->postmeta

WHERE post_id = %d

AND meta_key = %s

",

13, 'stack overflow'

)

);

通过使受影响的插件发送null作为方法中的第二个和第三个参数,它将完全解决问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值