2015-08-15 41 views
1

如何在不在错误日志中获取此警告的情况下使其工作。缺少wpdb :: prepare()的参数2缺少wpdb :: prepare()的参数2

我知道我需要传递第二个参数,如wp文档中所述,但无法使其正常工作。

 $insert = "INSERT IGNORE INTO " . $pps_new_table_name . "(post_id, post_author, create_date, hit_count, {$browser_column}, {$device_column}) VALUES (" . $_POST['post_id'] . ",'" . $_POST['post_author'] . "','" . $create_date . "','1','1','1') ON DUPLICATE KEY UPDATE hit_count=hit_count + 1, {$browser_column}= {$browser_column} + 1, {$device_column}= {$device_column} + 1"; 
     $results = $wpdb->query($wpdb->prepare($insert)); 

回答

2

我需要传递变量中的值区域...

VALUES (%s, %s, %s,'1','1','1') 

,并添加之后我的$插入串动我下面的原始值的字符串数组。

$results = $wpdb->query($wpdb->prepare($insert, array(
            $_POST['post_id'], 
            $_POST['post_author'], 
            $create_date 
           ))); 

因此总的来看,它看起来像这样。

$insert = " 
      INSERT IGNORE INTO " . $pps_new_table_name . "(post_id, post_author, create_date, hit_count, {$browser_column}, {$device_column}) 
      VALUES (%s, %s, %s,'1','1','1') 
      ON DUPLICATE KEY UPDATE hit_count=hit_count + 1, {$browser_column}= {$browser_column} + 1, {$device_column}= {$device_column} + 1"; 
      $results = $wpdb->query($wpdb->prepare($insert, array(
            $_POST['post_id'], 
            $_POST['post_author'], 
            $create_date 
           ))); 
      $wpdb->show_errors();