Doctrine 1을 사용하는 앱이 있는데 을 통해 객체에 대해 update_datetime
필드를 생성합니다. 몇 년 동안 괜찮 았지만 이제는 새로운 노트가 생겼고 Doctrine은 DATETIME
필드를 "2013-07-12T03:00:00+07:00"
문자열로 삽입하려고합니다. 일반적인 MySQL datetime 형식 인 "2013-07-12 00:00:00"
은 완전히 이상합니다.MYSQL의 DATETIME 형식이 올바르지 않습니다.
아주 똑같은 코드가 다른 컴퓨터에서 잘 돌아갑니다. 모든 것이 거의 동일합니다 - MySQL 5.6.12, PHP 5.3.15. 어떤 생각을해야할까요? StackOverflow의 커뮤니티의 도움으로 확인
Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2013-07-12T03:00:00+07:00' for column 'nextrun' at row 1' in library/Doctrine/Connection.php:1083
UPDATE
나는 마침내 그것을 해결했다. 문제는STRICT_TRANS_TABLES
으로
sql_mode
변수에 있습니다. 그러나
/etc/my.cnf
에 변화가 충분하지 않은 듯, 그래서 나는 다음과 같은
mysql -uroot
을 실행하고 입력했다 :
이
set sql_mode=NO_ENGINE_SUBSTITUTION; set global sql_mode=NO_ENGINE_SUBSTITUTION;
따라서 영원히 엄격한 제거하는 방법을 STRICT_TRANS_TABLES
UPDATE2 을 제거? 젠드에서 How to get rid of STRICT SQL mode in MySQL
내가 하나의 시스템에'php.ini' 구성보고 싶은데 작동합니다. 뭔가가 기본 시간대를 설정했는데 다른 설정 시간대는 설정하지 않았다는 것을 알 수 있습니다. – Phil
'date.timezone' 추가 - 동일. 다른 아이디어? – firedev
PHP와 Mysql Server 버전 및 Mysql 클라이언트 라이브러리 버전 (및 유형)을 비교할 때 어떤 차이점이 있습니까? 이 문제를 분석하는 한 가지 방법은 동일한 구성이 있었으면 응용 프로그램이 동일하게 실행되므로 구성의 차이를 찾는 것입니다. * 거의 동일 함은 다를 수 있습니다. 예를 들어 하나의 서버가 후드 아래에서 mysqlnd를 사용합니까? – hakre