缺少wpdb :: prepare()的参数2,在第252行的/dbtable.php中调用,在第1246行的{public_html/wp-includes/wp-db.php中定义

时间:2017-01-31 19:36:00

标签: php mysql wordpress

我每天都会在日志文件中看到此错误:

  

PHP警告:缺少wpdb :: prepare()的参数2,在第252行的/home/xxxxxxxx/public_html/wp-content/plugins/affiliate-link-cloaking/dbtable.php中调用,并在/ home /中定义第1246行的xxxxxx / public_html / wp-includes / wp-db.php

在第252行的/dbtable.php中我有这段代码:

$result = $wpdb->query($wpdb->prepare("DELETE FROM ". $this->track_table_name . " WHERE YEAR(visittime)=". date('Y',$sdate) . " AND MONTH(visittime)=" . date('m',$sdate) ));

在第1246行的/wp-db.php中我有这段代码:

public function prepare( $query, $args ) {

请记住,我在PHP / SQL方面缺乏经验,而且我不会理解一般的提示。请告诉我,复制和粘贴的内容))

由于

1 个答案:

答案 0 :(得分:1)

这不是使用$wpdb->prepare的正确方法,第一个值应该是带有替换标记的SQL(%s = string,%d = digit等),然后是用。替换它们的值。

$sql = "DELETE FROM {$this->track_table_name} WHERE YEAR(visittime) = %d AND MONTH(visittime) = %d";
$query = $wpdb->prepare($sql, date('Y', $sdate), date('m', $sdate))
$wpdb->query($query);

请参阅此处的示例: https://developer.wordpress.org/reference/classes/wpdb/prepare/