fir*_*dev 22 php mysql doctrine zend-framework doctrine-1.2
我有一个带有Doctrine 1的应用程序,我通过生成update_datetime
对象的字段new Zend_Date->getIso()
.它工作得很好多年,但现在我得到了一个新的笔记本和Doctrine尝试插入DATETIME
字段作为字符串"2013-07-12T03:00:00+07:00"
而不是正常的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?如何在MySQL中摆脱STRICT SQL模式
hak*_*kre 12
如果存在,您可以尝试STRICT_TRANS_TABLES
从my.ini中的sql-mode中删除.
这可能会导致此错误,其日期时间字符串值包含您尚未转换为mysql datetime的格式.这个my.ini更改被报告为修复: