PHP:键'yy'的重复条目'xx'

时间:2012-01-04 14:21:33

标签: php mysql duplicate-data

我收到以下错误:

Duplicate entry 'morandi-midnight-train' for key 'post_name'

我想检查post_name字段是否已经使用变量定义了行,如果有则回显错误。

我怎样才能完成这个?

  • post_name具有唯一索引

3 个答案:

答案 0 :(得分:3)

在INSERT查询之前运行SELECT 1 FROM table WHERE post_name = 'morandi-midnight-train' LIMIT 1;。如果SELECT有任何结果,请显示错误。

答案 1 :(得分:1)

如果要检查是否存在行,可以执行SELECT。

但这不是避免“重复密钥”问题的最佳方法。也许在插入操作中使用ON DUPLICATE KEY UPDATE会更好。如果新行不存在,则会插入一个新行,如果存在,则静默更新现有行。

有关详细信息,请参阅MySQL手册: http://dev.mysql.com/doc/refman/5.5/en/insert.html

答案 2 :(得分:-1)

如果您想忽略该错误,请运行INSERT IGNORE...并在之后检查受影响的行(通过mysql_affected_rows())。

如果要更新已插入的记录,请运行INSERT INTO ... ON DUPLICATE KEY UPDATE查询。

请参阅MySQL Manual