PHP - ошибка PHP Warning: Field 'name' doesn't have a default value

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Доступная цена

PHP - ошибка PHP Warning: Field 'name' doesn't have a default value

Ошибка в логах PHP при работе скрипта:

PHP Warning: Field 'name' doesn't have a default value

Для Simpla CMS - эта ошибка выглядит:

PHP Warning: Field 'payment_date' doesn't have a default value [INSERT INTO s_orders SET delivery_id='1'

означает, что на сервере обновился mysql сервер до версии 5.7 или mariadb до 10.4, в котором по-умолчанию изменен режим работы sql_mode в котором включен Строгий режим работы - Strict mode.
Strict режим оберегает базу от ввода неправильных данных.
Так при включенном strict mode в mysql - нельзя делать insert'ы без указания non-default полей. Глобально - это проблема разработчиков скрипта, у которых стоит задача сделать чтобы скрипт работал в strict mode

отключить Strict mode для mySQL сервера можно через конфиг файл /etc/my.cnf в CentOS 7 (Для Ubuntu/Debian - /etc/mysql/my.cnf):

# vi /etc/my.cnf
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

и перезагрузить mysql сервер командой:

# systemctl restart mysqld