2006年6月13日星期二

MySQL错误"Out of range value adjusted for column ..."的解决方法

MySQL今天下午在用PHP往MySQL里INSERT数据的时候报错“#1264 - Out of range value adjusted for column 'date' at row 1”。

PHP里面的SQL语句类似于:

$query = "INSERT INTO conn_num (date, conn_num) values ('$comma_separated[0]', '$comma_separated[1]')";

在Google里查得原因:新版本MySQL对字段的严格检查。(我的MySQL版本为5.0.21)

解决办法:

修改mysql文件夹下的my.ini文件,将
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重新启动MySQL。

-------------------------------------------

奇怪的是,在不修改my.ini文件的情况下,我在MySQL Front里面用将date属性改为ascii后,用SQL语句直接运行,就不会报错;而运行PHP脚本仍然抱错:(

阅读全文...