2014-01-09 66 views
0

不是100%確定這是最好的,還是在WordPress的堆棧中,但我會在這裏給它一個。我的WordPress數據庫中有一個名爲'wp_sales'的自定義數據庫表。每當有人購買物品的sale_id利用被寫入到數據庫中的以下....WordPress SQL表,搜索價值

<?php 
global $wpdb; 
$table_name = $wpdb->prefix . "sales"; 
$wpdb->insert($table_name, array('saleid' => $sale_id)); 
?> 

這個偉大的工程,我試圖現在要做的就是修改這讓之前將其寫入saleid它檢查它首先要確保沒有重複。

這只是一個直接的SQL查詢,我需要使用?

+1

爲什麼不在您的saleid列上添加UNIQUE約束?並處理異常。 –

+0

我雖然對此有所瞭解,但之後我需要運行一些額外的邏輯,並且將它作爲檢查的一部分進行嘗試似乎更有效。或者我以錯誤的方式看待它? – fightstarr20

回答

1

只是檢查的行數:

global $wpdb; 
$table_name = $wpdb->prefix . "sales"; 
$registered = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE saleid = '{$sale_id}'"); 

if ($registered == 0) { 
    $wpdb->insert($table_name, array('saleid' => $sale_id), array('%s') ); 
} 

編輯:嘗試爲表示here以指定格式。

EDIT2:對於varchar,在插入時必須在選擇時添加引號併爲格式指定%s。

+0

對我來說看起來不錯,我要試一試 – fightstarr20

+0

我已經嘗試過,但由於某種原因,它正在創建重複項而不會阻止它們 – fightstarr20

+0

也許嘗試指定格式,我更新了我的答案。 –