2011-03-24 116 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语句,你可以用。但在你发布的例子中,这可能不是一个好办法。

相关问题