在使用global $wpdb时,对数据进行查询,举个栗子

get\_var($wpdb->prepare("SELECT count(\*) FROM $wpdb->postmeta where meta\_key='key\_price' and meta\_value='100'")); echo $IsHave; ?>

上面的代码输出后就会报Warning: Missing argument 2 for wpdb::prepare()的错误。 使用$wpdb->prepare是因为mysql语句中可能含有单引号双引号这样的字符,如果不加 处理直接送给mysql,可能会导致错误。于是这里通过一个prepare来对mysql语句进行预处理。prepare的语法是:

$sql = $wpdb->prepare( ‘query’ [, value_parameter, value_parameter … ] );

在query中可以包含%d,%S,%f,分别表示后面参数的类型是整数,字符和浮点。所以我们将代码改成这样:

$IsHave = $wpdb -> get_var($wpdb->prepare(“SELECT count(*) FROM $wpdb->postmeta where meta_key=%s and meta_value=%d”,’key_price’,’100’));

以上问题解决。 参考资料: https://stackoverflow.com/questions/13955416/warning-missing-argument-2-for-wpdbprepare https://blog.csdn.net/jinyeweiyang/article/details/42123481