2013-03-22 45 views
1

我試圖通過PHP插入幾個值到表如下:SQL插入如果沒有記錄存在

$sql = "INSERT INTO table1(Field1, Field2) 
      Values (?, ?) 
      "; 
    $stmt = $db-> prepare($sql); 
    $stmt->execute(array($field1, $field2)); 
    $stmt->closeCursor(); 

字段1是主鍵。

但是,我只想插入Field1,如果表中沒有field1的記錄實例(例如,如果已經有一個field1記錄爲'orange',則不應插入另一個'orange'if要求這樣做)。

我覺得這一定是非常簡單的事情,但我沒有嘗試似乎正在工作。

+0

所以檢查記錄第一存在? – Kermit 2013-03-22 22:08:48

+0

@ RS-它不讓我評論,所以很抱歉發佈這個答案 嗯,我試過了,它只插入了1行,一切都是空白的。這裏是我的實際代碼: INSERT INTO表1(SKU,標題) \t \t \t SELECT(AT)SKU,(在)方法,從雙 \t \t \t WHERE NOT EXISTS(選擇1 FROM表1 WHERE SKU = @ SKU) \t \t \t「; \t $語句= $ DB->製備($ SQL); \t $ stmt->執行(陣列($ SKU,$ ID)); \t $ stmt-> closeCursor(); $ stmt-> execute中的$ SKU和$ id是在foreach循環中創建的變量。 – user2201011 2013-03-22 23:05:17

+0

@us er2201011:你應該添加一個標籤,說明你正在使用哪個RDBMS。 – jmoreno 2013-03-23 12:40:47

回答

1

試試這個

INSERT INTO table1(Field1, Field2) 
SELECT @field1, @field2 from dual 
WHERE not exists (select 1 from table1 where field1 = @field1); 
[email protected], @field2 are your parameter values 
相關問題