2018.12.04 20:09

Incorrect integer value: '' for column '컬럼 이름' at row 1 오류 났을 때


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에 로그인 한다.



아래 명령을 이용하면

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)






위의 방법은 mysql에서 쿼리를 이용해 set-mode를 변경하는 것이고

my.cnf 환경 설정 파일을 수정할 수 있다.


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

        

Trackback 0 Comment 0