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.