Я только что переключился с установки MAMP на собственную установку Apache, MySql и PHP. У меня все работает, но я начал использовать свое веб-приложение в новой среде, и вдруг любые команды INSERT приводят к следующей ошибке:
SQLSTATE [HY000]: общая ошибка: 1364 Поле 'display_name' не имеет значения по умолчанию
Кажется, я не могу оставить поле пустым сейчас, где я был в состоянии раньше. Я использую MySql версию 5.6.13
Есть ли способ изменить этот параметр в MySql?
MySQL, скорее всего, в режиме STRICT. Попробуйте запустить SET GLOBAL sql_mode=''
или отредактируйте файл my.cnf, чтобы убедиться, что вы не устанавливаете STRICT_ALL_TABLES или тому подобное.
MySQL, скорее всего, в режиме STRICT
, что не обязательно является плохим, поскольку вы будете выявлять ошибки / проблемы на раннем этапе, а не просто слепо думать, что все работает так, как вы планировали.
Измените столбец, чтобы разрешить null:
ALTER TABLE `x` CHANGE `display_name` `display_name` TEXT NULL
или, присвойте ему значение по умолчанию в качестве пустой строки:
ALTER TABLE `x` CHANGE `display_name` `display_name` TEXT NOT NULL DEFAULT ''
Все эти ответы являются хорошим способом, но я не думаю, что вы хотите всегда идти в свою БД и изменять значение по умолчанию, которое вы установили в NULL. Я предлагаю вам перейти в приложение / User.php и изменить защищенный $ fillable, чтобы он использовал ваши новые поля в массиве данных, который использовался для регистрации. Предположим, вы добавили новое поле ввода «first_name», ваш $ fillable должен выглядеть примерно так: protected $ fillable = ['first_name', 'email', 'password',]; Это сделало это для меня. Удачи!