У меня есть приложение с Doctrine 1, и я генерирую поля update_datetime
для объектов через new Zend_Date->getIso()
. В течение многих лет он работал отлично, но теперь у меня появился новый блокнот, и Doctrine пытается вставить поля DATETIME
в виде строки "2013-07-12T03:00:00+07:00"
вместо обычного формата datetime MySQL "2013-07-12 00:00:00"
, что совершенно странно.
Тот же самый код отлично работает на другом компьютере. Все почти идентично - MySQL 5.6.12, PHP 5.3.15 на обоих. Любая идея, где я должен выглядеть?
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
Хорошо с помощью сообщества StackOverflow, я, наконец, решил его. Проблема заключалась в 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 Как избавиться от STRICT навсегда? Как избавиться от режима STRICT SQL в MySQL