맛집 여행 캠핑 일상 생활

[MariaDB] PHP Uncaught mysqli_sql_exception: Field 에러 본문

IT이야기

[MariaDB] PHP Uncaught mysqli_sql_exception: Field 에러

영은파더♥ 2024. 6. 28. 17:37
728x90

예전에 잘 돌아가던 소스랑 Database 를 새로운 버전에 이전해서 테스트 해보고 있는데 하나씩 에러가 발생하네요~

Fatal error: Uncaught mysqli_sql_exception: Field 'column_name' doesn't have a default value in /home/example/public_html/test.php

위 에러는 테이블의 특정 필드의 값을 기본값을 설정해주어야 한다는 내용인데 한두군데면 테이블이던 소스던 수정할테지만 수많은 곳에 있기 때문에 모두 찾아서 수정해 주긴 힘들거라고 보여집니다.

이런 경우엔 

SET GLOBAL sql_mode=''; 또는

/etc/my.cnf.d/my.cnf
[mysqld]
set-mode=''

systemctl restart mariadb

이렇게 해줄수도 있으며

MariaDB [(none)]> show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                     |
+---------------+-------------------------------------------------------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------+

SET GLOBAL sql_mode='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

첫번째 문제 "STRICT_TRANS_TABLES" 부분만 빼고 설정해줍니다.

리스타트 되더라도 적용되게 하려면

/etc/my.cnf.d/my.cnf
[mysqld]
sql-mode=' ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

systemctl restart mariadb

 

728x90
반응형
Trackback : | Comments :