У меня странная проблема. Я скопировал исходный код PHP и базу данных MySQL (стандартный экспорт-импорт phpMyAdmin) с одного сервера на другой. На старом сервере все работало нормально, но на новом сервере произошла ошибка базы данных.
Поле ‘xxx’ не имеет значения по умолчанию
Я знаю, как установить значение по умолчанию или нужно передать значение, если null is off
, Но почему это работает на старом сервере? Я что-то упустил во время экспорта-импорта? В старой базе нет триггеров. Может, конфигурация другая?
MySQL, скорее всего, в STRICT
Режим. Попробуйте запустить
SET GLOBAL sql_mode=''
или отредактируйте свой my.cnf
чтобы убедиться, что вы не устанавливаете STRICT_ALL_TABLES
или т.п.
ИЛИ, измените определение таблицы и добавьте значение по умолчанию для поля.
Например:
ALTER TABLE `tableA` CHANGE `field` `field` TEXT NULL
или, дайте ему значение по умолчанию в виде пустой строки:
ALTER TABLE `tableA` CHANGE `field` `field` TEXT NOT NULL DEFAULT ''
Других решений пока нет …