Drupal: повторяющаяся запись '' для запроса ключа 2:

У меня есть скрипт, который программно создает пользователей на лету для синхронизации со старой базой данных. Какое-то время это выглядело довольно хорошо. Теперь все неожиданно началось с ошибкой дубликата ключа при попытке вставить пользователя. точная ошибка:

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)

2 ответа

Вы должны использовать функцию user_save.

Например, для пользователей новостей:

$user = user_save( null, array( 'name' => 'the name' , 'mail' => 'the user mail'));
  • Экспортируйте таблицу, воссоздайте ее локально и попробуйте вставить снова.
  • Может быть, есть проблема с кодировкой? Попробуйте найти всех пользователей с одним и тем же доменом, чтобы увидеть, есть ли похожие записи.
  • Используйте таблицу запросов модуля Devel, чтобы увидеть, что на самом деле происходит и в Drupal.
Другие вопросы по тегам