WordPress 3.5最新版本发布已经有好几天了,最近一直想着将自己的网站博客进行更新,但是想了想还是慎重点好,于是自己在本地测试了一番,果不其然发生了错误。错误如下:

<?php  
Warning: Missing argument 2 for wpdb::prepare(), called in xxx.php on line 75 and defined in /www/wp-includes/wp-db.php on line 990  
?>

上面的警告信息说是这个函数缺少第二个的参数。于是去官网看看是不是有这方面的内容,在 http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/ 这个地方找到了修改的方案,而且也有不少朋友已经解决了这个问题。磊子偷了个懒,找了一篇内容给大家看下,如果你也更新wordpress最新版本后,遇到这个问题,不妨试试下面的方法。

首先是最简单的一种,屏蔽这个警告信息,在你博客下的wp-config.php中填入如下代码,如果已存在修改成下面的。

@ini_set('display_errors', 0);

这个只是起到屏蔽作用,如果想让它正常工作可使用下面的方法。

问题代码:

$wpdb->prepare( "SELECT * FROM table WHERE id = $id" );

解决后的代码:

$wpdb->prepare( "SELECT * FROM table WHERE id = %d", $id );

将第二个参数添加上去,来传递值,使用prepare无非是想SQL更为安全。所以大家如果遇到这个问题,不妨试试上面的方法。如果你的SQL里面参数多,可以类似下面的这种来写。

$wpdb->prepare( "SELECT * FROM table WHERE ID = %d AND name = %s", $id, $name );

好了,今儿主要就说说这个。