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 를 동작시키니 정상 작동하였다.