我收到以下错误:
Duplicate entry 'morandi-midnight-train' for key 'post_name'
我想检查post_name字段是否已经使用变量定义了行,如果有则回显错误。
我怎样才能完成这个?
答案 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