0

您好我收到错误消息:

Warning: Missing argument 2 for wpdb::prepare(), called in /home/url.com/wp-content/plugins/WPEC-Personalize-3.8/wpec-personalization.php on line 322 and defined in /home/url.com/wp-includes/wp-db.php on line 990

我在第 322 行找到了代码:

$add = $wpdb->get_var($wpdb->prepare("SELECT enabled FROM ". $table_name ." WHERE pers_id  = ". $myresults->pers_id." AND product_id = ".$product_id));

我正在尝试将其更新为新的 wordpress 标准:

$add = $wpdb->get_var$wpdb->prepare("SELECT enabled FROM . %d . WHERE pers_id  = . %d. AND product_id = .%s",$table_name, $myresults->pers_id, $product_id));

我不确定我错过了什么。不幸的是,我不是这个插件的作者,他也没有计划任何更新:-(。

任何帮助将不胜感激!

4

2 回答 2

1

抛弃周期。也缺少左括号get_var

$add = $wpdb->get_var( $wpdb->prepare(
    "SELECT enabled FROM %s WHERE pers_id = %d AND product_id = %d",
    $table_name, 
    $myresults->pers_id, 
    $product_id
));
于 2013-01-30T17:01:18.383 回答
0

这一行:

$add = $wpdb->get_var$wpdb->prepare("SELECT enabled FROM . %d . WHERE pers_id  = . %d. AND product_id = .%s",$table_name, $myresults->pers_id, $product_id));

似乎缺少括号,并且查询中有一堆句点,我很确定不应该在那里。

$add = $wpdb->get_var($wpdb->prepare("SELECT enabled FROM %d WHERE pers_id  = %d AND product_id = %s",$table_name, $myresults->pers_id, $product_id));

另外,我不是Wordpress 后端的专家sprintf(),但它似乎在查询中使用了语法,并%d表示一个十进制数,这对于表名来说可能不是超级好。

无论如何,如果插件停止为当前版本工作,您可能应该联系插件作者以获得关于代码中实际应该发生的情况的支持。

于 2013-01-30T17:04:07.117 回答