2015-08-15 69 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();