PHP - ошибка PHP Warning: Field 'name' doesn't have a default value: различия между версиями

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск
Строка 10: Строка 10:
  
 
означает, что на сервере обновился mysql сервер до версии 5.7 или mariadb до 10.4, в котором по-умолчанию изменен режим работы '''sql_mode''' в котором включен '''Строгий режим работы''' - '''Strict mode'''.<br />
 
означает, что на сервере обновился mysql сервер до версии 5.7 или mariadb до 10.4, в котором по-умолчанию изменен режим работы '''sql_mode''' в котором включен '''Строгий режим работы''' - '''Strict mode'''.<br />
 +
'''При включенном strict mode в mysql''' - '''нельзя делать insert'ы без указания non-default полей'''. Глобально - это проблема разработчиков скрипта.<br />
  
 
отключить Strict mode для mySQL сервера можно через конфиг файл /etc/my.cnf в CentOS 7 (Для Ubuntu/Debian - /etc/mysql/my.cnf):
 
отключить Strict mode для mySQL сервера можно через конфиг файл /etc/my.cnf в CentOS 7 (Для Ubuntu/Debian - /etc/mysql/my.cnf):

Версия 14:39, 13 мая 2020

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

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 mode в mysql - нельзя делать insert'ы без указания non-default полей. Глобально - это проблема разработчиков скрипта.

отключить 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