我的问题是:
我有一个数据库,我试图在我的表中插入一个简单的创建日期。我将字段类型设置为"date",当我在php代码中通过PDO插入值时,它不起作用。
实际上,数据库正在正确地进行数据和插入,但出于某种原因,我仍然从php中得到以下错误:
SQLSTATE22007:无效的日期时间格式: 1292个不正确的日期时间值:“1”表示列“创建”在第1行
这是我尝试插入以下值的时候:
$sql = "INSERT INTO questions VALUES (NULL,'"
.$values['type_question']
."','"
.$values['question']
."', NULL , NOW() )"
;我很困惑,因为当我打开phpMyAdmin或mysql控制台并粘贴代码(我做了var_dump的var_dump)时,它没有任何问题。
我尝试了以下组合:
字段类型:日期、日期
值: NOW(),CURRENT_DATE(),date(‘Y:i:s’)
所有这些都没有用。
我得到上面的错误,或者相同的错误代码,但是有一条不同的消息,上面写着:
第1行字段“创建”的错误值
我真的不明白它是从哪里来的..。它是否是来自PHP7 PDO的一个bug?我做了什么坏事吗?
编辑: PHP 7.0.0 Mysql 5.7.9
通过修改my.ini文件来解决问题,谢谢。
发布于 2016-06-04 13:53:16
检查您的my.ini文件,如果它存在的话,从sql模式中删除STRICT_TRANS_TABLES。
发布于 2016-06-04 13:58:14
我的my.ini文件中有一行: sql-mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER“
那么,我是否应该删除"STRICT_ALL_TABLES“,而让其余的被删除呢?
我刚刚试过了,它似乎解决了问题(我现在有其他与请求有关的错误,但没有链接到日期/日期时间),我将继续更新,以确保它与它无关。
注意:新的错误是SQL状态23000完整性约束违反。但是插入正确,插入的值也是正确的,同样,错误来自PHP,而不是MYSQL .-字段设置为默认值,可以为NULL,如果我在请求中输入NULL,'‘或正确的FK值,则会出现错误。
编辑:解决了。错误的表名,与我想的日期/日期无关,只有我和我的大脑。
https://stackoverflow.com/questions/37630980
复制相似问题