Incorrect integer value: '' for column 'xxx'

DB를 이관하고 php 페이지 동작하다 발생한 오류였다.
오류의 원인으로 추정되는 것은 기존 DB 설정이나 환경이 달랐기 때문이라 생각이 든다.

아래 과정은 이 오류에 대한 모든 케이스의 정답이 아니다.
하나의 사례일 뿐 꼭 왜 저 명령어를 쓰는 지 어떤 용도인지 확인하고 사용하길 바라며 여기서는 하나의 사례로 남겨두려고 한다.


우선 mysql 을 접근해 본다.

mysql -uroot -p

비밀번호를 넣고 접근했다면 이제 sql_mode 를 확인해 보자

select @@global.sql_mode;

위 처럼 입력하면 아래처럼 결과가 나올 것이다.

+-------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                         |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

여기서 STRICT_TRANS_TABLES 이 있다면 이 부분을 제거하고 세팅해 준다.

set @@global.sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

위 처럼 입력한 뒤 다시한 번 select @@global.sql_mode; 명령어를 입력하면 바뀌었다는 것을 확인 할 수 있다.

+-----------------------------------------------------------------------+
| @@global.sql_mode                                                     |
+-----------------------------------------------------------------------+
| ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------+
1 row in set (0.000 sec)

그리고 다시 php 를 동작시키니 정상 작동하였다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP