2011-03-24 105 views
1

如何,如果同一question_text存在不插入值,但沒有爲first_word.如果已經存在

例不要插入條目(question_text是整個句子,第一個詞是句子中first word。)

他很瘋狂。 //插入

他很聰明。 //插入

他很聰明。 //存在不要插入

$first_word = current(explode(' ', $_POST['question_text'])); 

mysql_query("INSERT INTO questions (question_id,question_text,field_name) 
      VALUES ('','$_POST[question_text]','$first_word')"); 
+0

你不想要兩個具有相同值的條目? – powtac 2011-03-24 15:09:21

+0

是的,我不希望插入相同的值。 – Abby 2011-03-24 15:13:21

+0

你不能把question_text設置爲唯一嗎? – 2011-03-24 15:13:51

回答

0

你不能這樣做這個查詢。您需要先編寫另一個查詢來檢查您不想複製的行的存在。

此外,代碼容易受到SQL注入攻擊。看到這裏的信息,如何解決這個問題:Protect against SQL injection

+0

感謝您的意見:D – Abby 2011-03-24 15:20:15

3

你可以運行該SQL一次查詢,以防止相同內容的雙項:

ALTER TABLE questions ADD UNIQUE(question_text); 
+0

謝謝,我已經明白了! :d – Abby 2011-03-24 15:19:55

0

MySQL有上的插件重複鍵UPDATE語句,你可以用。但在你發佈的例子中,這可能不是一個好辦法。

相關問題