1

我有一个以编程方式即时创建用户以与旧数据库同步的脚本。一段时间以来,它一直很顺利。现在突然间它在尝试插入用户时开始出现重复键错误。确切的错误是:

Duplicate entry 'user@email.com' for key 2 query: INSERT INTO users (name, mail, status, pass, created).....

如果我在那里尝试查询,我可以直接从 mysql 控制台复制这个错误。所以这就是问题变得奇怪的地方。用户表中的任何地方都不存在条目“user@email.com”。因此,我对它如何生成重复输入错误感到困惑,因为数据库中没有使用此电子邮件地址的记录。

这是mysql控制台的直接复制/粘贴。敏感数据已更改以保护用户

mysql> INSERT INTO users (name, mail, status, pass, created) VALUES ('username', 'user@email.com', 1, 'encryptedpassword', 1294946026);

ERROR 1062 (23000): Duplicate entry 'user@email.com' for key 2

mysql> select * from users where mail='user@email.com';

Empty set (0.00 sec)

4

2 回答 2

1

您必须使用user_save函数。

例如对于新闻用户:

$user = user_save( null, array( 'name' => 'the name' , 'mail' => 'the user mail'));
于 2012-09-20T21:58:08.090 回答
0
  • 导出表并在本地重新创建它,然后再次尝试插入。
  • 也许有一个编码问题?尝试搜索具有相同域的所有用户,以查看是否有类似的条目。
  • 使用 Devel 模块的查询表也可以查看 Drupal 中实际发生的情况。
于 2011-01-14T11:45:13.880 回答