【问题标题】:Don't insert entry if already exist如果已存在,请勿插入条目
【发布时间】:2011-03-24 15:07:13
【问题描述】:

如果相同的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')");

【问题讨论】:

  • 您不想要两个具有相同值的条目?
  • 是的,我不想插入相同的值。
  • 你不能将 question_text 设置为唯一的吗?

标签: php mysql


【解决方案1】:

您可以运行此 SQL 一次查询以防止具有相同内容的重复条目:

ALTER TABLE questions ADD UNIQUE(question_text);

【讨论】:

    【解决方案2】:

    你不能用这个查询来做到这一点。您需要先编写另一个查询来检查您不想复制的行是否存在。

    此外,代码容易受到 SQL 注入攻击。有关如何解决此问题的信息,请参见此处:Protect against SQL injection

    【讨论】:

      【解决方案3】:

      MySQL 有 INSERT ON DUPLICATE KEY UPDATE 语句,您可以使用它。但是在您发布的示例中,这可能不是一个好方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-26
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        相关资源
        最近更新 更多