mysql 오류 Incorrect integer value: '' for column
1366 : Incorrect integer value: '' for column 'gr_use_access' at row 1
error file :adm/boardgroup_form_update.php
위의 예시처럼 1366 오류는 필드에 들어가 data type이 맞지 않을 때 생기는 오류다. 정수형 타입에 null이나 문자형이 입력 될 때 주로 발생한다.
해결을 위해서 root 권한을 이용해 mysql에 로그인 한다.
STRICT_TRANS_TABLES 옵션 제거
아래 명령을 이용하면
mysql> select @@global.sql_mode;
+----------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode |
+----------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
sql_mode 옵션을 확인 할 수 있다.
옵션 중에 굵은 STRICT_TRANS_TABLES를 제거해 주면 된다.
mysql> set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0.00 sec)
=> 영구 변경 안됨
my.cnf 또는 my.ini 설정 파일에서 수정
sql_mode 또는 sql-mode
sql_mode="ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
위의 부분이 주석처리 되어 있으면 #를 제거하고 옵션을 바꿔준다.
그리고 mysqld 데몬을 다시 실행한다.
#service mysqld restart
[출처] Incorrect integer value: '' for column '컬럼 이름' at row 1 오류 났을 때|작성자 쌈닭