Ошибка в записи информации в дополнительные поля

Ошибка в записи информации в дополнительные поля

от Vasiliy D. -
Количество ответов: 6

Доброго дня.

При создании или корректировке информации в профиле пользователя появилась вот такая ошибка 

Информация об отладке: Field 'Data' doesn't have a default value
INSERT INTO mdl_user_info_data (userid,fieldid) VALUES(?,?)
[array (
0 => 11668,
1 => '7',
)]
Error code: dmlwriteexception

Трассировки стека:

  • line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
  • line 1357 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
  • line 1403 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
  • line 201 of /user/profile/lib.php: call to mysqli_native_moodle_database->insert_record()
  • line 682 of /user/profile/lib.php: call to profile_field_base->edit_save_data()
  • line 267 of /user/editadvanced.php: call to profile_save_data()
MOODLE 3.9+ (Build: 20200618)
PHP 7.2.34
При этом буквально вчера все работало общее число записей в таблице mdl_user_info_data превышает 7т

В ответ на Vasiliy D.

Re: Ошибка в записи информации в дополнительные поля

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Самый простой способ починить - восстановить из вчерашнего бекапа, если он есть.
Но перед этим, я бы посмотрел в консоль браузера (раздел network) на предмет ошибок.
Потом посмотрел бы логи веб-сервера/php. Возможно вы видите следствие другой ошибки.
В ответ на Виталий Лавров

Re: Ошибка в записи информации в дополнительные поля

от Vasiliy D. -
спасибо за ответ, восстановить не могу из-за непонимания точной даты проблемы, а восстановление на неделю или более назад являются проблемными с точки зрения потери данных пользователей. Удалял полностью таблицу и создавал заново не помогло, так же подкидывал полностью каталоги user и login тоже без эффекта. Консоль ошибка 404 и при редактуре и при создании профиля и при редактуре, временно удалил дополнительные поля без них все работает стабильно. Буду копать дальше
В ответ на Vasiliy D.

Re: Ошибка в записи информации в дополнительные поля

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Консоль ошибка 404
А вот это уже более интересно. Неуспешная загрузка некоторых скриптов может приводить к очень странным побочным эффектам.

В ответ на Виталий Лавров

Re: Ошибка в записи информации в дополнительные поля

от Vasiliy D. -
Как итог удалил mdl_user_info_data из базы создал заново все работает. При чем странность в том что очистка таблицы результат не дала только физическое удаление вопрос решен, но как говориться осадочек остался смысл проблемы не ясен
В ответ на Vasiliy D.

Re: Ошибка в записи информации в дополнительные поля

от Vasiliy D. -
Проработав 3 дня все повторилось, не могу докопаться до сути!!!
В ответ на Vasiliy D.

Re: Ошибка в записи информации в дополнительные поля

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
А вы и не пытаетесь.
Ошибка записи в базу это следствие ошибки произошедшей ранее.
Её нужно найти. Как минимум, в консоли браузера (раздел Network) нужно найти запросы которые выпонились с ошибками.
В первую очередь интересуют ошибки .php и .js скриптов.
Для проверки желательно повторить эксперимент с использованием другого браузера или с отключенными плагинами которые могут блокировать запросы.
Так же полезно заглянуть в логи веб-сервера/php и в логи БД.
Если вы до этого нашли ошибку в консоли браузера, то искать в логах сервера будет проще.