MySQL Incorrect datetime value: '0000-00-00 00:00:00'
mysql 버전을 변경하면서
MySQL Incorrect datetime value: '0000-00-00 00:00:00'
처럼 문제가 발생했다.
SHOW VARIABLES LIKE 'sql_mode' ;
또는
SELECT @@sql_mode ;
로 확인해보면
SQL_MODE = STRICT_TRANS_TABLES
와 같이 되어있었다.
The default SQL mode in MySQL 5.7 includes these modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.
이 외의 문제들도 발생하기에 쉽게 처리하려면
sql_mode = ''
와 같이 바꿔주면 되는대 mysql 서버설정값을 임의로 변경 할 수 없는경우 (일반 호스팅사용)에는 편법을 사용해야한다.
당연하지만 mysql DB 를 사용할때 필수로 연결을 먼저 해야한다.
연결는 부분에 sql 문을 하나 실행시킨다.
ex) $res = $_DB->query(" SET sql_mode = ''; ");
이렇게 사용해서 서버의 mysql 설정을 매번 연결한 connection 에 임의로 적용하게 해준다.
어차피 이 연결을 통해서만 사용한다면 서버설정을 바꿀수없는 권한이지만 문제를 해결 할 수있다.
참고
http://stackoverflow.com/questions/35565128/mysql-incorrect-datetime-value-0000-00-00-000000
https://stackoverflow.com/questions/35565128/mysql-incorrect-datetime-value-0000-00-00-000000