我之前看到过运行php脚本的人出现这个错误,但这是发生在phpmyadmin吗?
Error
SQL query:
UPDATE `cl56-goldeng`.`users` SET `email` = '' WHERE `users`.`id` =118
MySQL said: Documentation
#1062 - Duplicate entry '' for key 'email'
如果我给该字段另一个值,它可以正常工作,但如果我清除该字段并按回车键,则会出现上述错误。
答案 0 :(得分:3)
在您的表cl56-goldeng.users
上,在创建时指定了字段email
,以允许不允许超过1个相同的值进入它。这是使用MySQL中表创建的UNIQUE
标识符完成的。 You can see more on the UNIQUE identifier at this link.
您可以选择2个选项。
email
字段上的唯一约束。这完全取决于您的代码中的逻辑,但看到电子邮件应几乎始终是唯一的,不建议这样做。您可以通过运行命令删除唯一键:
alter table [table-name] drop index [unique-key-index-name];
NULL
而不是空字符串。我的假设是,当用户电子邮件不存在时,您将设置一个空字符串。在这种情况下,最好使用NULL
,然后在从数据库中检索数据时检查它。您可以使用NULL
语句中的NULL
标识符插入MySQL
值,如下所示:
INSERT INTO users (firstName,lastName,email)
VALUES ('Bob','Ross',NULL);
然后检查您正在访问此数据的任何语言的NULL
值。
答案 1 :(得分:2)
您的email
字段有唯一约束。重新考虑您的逻辑或drop the unique constraint。
答案 2 :(得分:1)
多数民众赞成是因为您可能已将该电子邮件声明为唯一密钥,并且一旦您输入一行空电子邮件,它就不会发送另一封空邮件