我有以下代码(php,mysql,pdo):
$stmt = $db->prepare("INSERT INTO agent_temp SET party=?, date = NOW()");
$stmt->execute(array($party));运行时,交易方被正确插入,但日期没有按其应有的方式插入(操作时的系统日期和时间)。我已经多次验证date的字段类型是datetime。
有什么想法吗?
编辑
提供实际数据和返回的结果:
假设如下所示:
$party = 'John';
结果返回:
party | date
-------------------------------------
John | 0000-00-00 00:00:00更新:
当我直接在mysql查询浏览器中运行以下代码时,insert会正常工作:
插入agent_temp set party =‘约翰’,date = NOW();
正在返回:
party | date
-------------------------------------
John | 2010-12-28 13:15:23已应答
好了,谁准备好杀我了?我不知道是什么引起了这个问题,但不幸的是,这个问题似乎是由于我机器上的一个较早版本的php脚本被缓存了,并且仍然在运行错误的数据。我刷新、关闭并清空了浏览器,现在脚本可以工作了。我很抱歉让每个人的大脑都融化了一点。
发布于 2010-12-29 03:09:19
这样如何:
$stmt = $db->prepare("INSERT INTO agent_temp SET party=?, date = ?");
$stmt->execute(array($_POST['party'], date("Y-m-d H:i:s")));发布于 2010-12-29 03:25:12
我不确定您使用的是哪个系统,但我认为您的prepare语句将在NOW()部分周围添加引号-导致语句尝试插入NOW(),而不是运行mysql函数NOW() -因此,由于字段现在无法存储字符(),您将得到000-00.....
出于兴趣,尝试将字段类型从DATETIME更改为TEXT,看看在运行该命令时会得到什么。
发布于 2010-12-29 03:05:56
这是一个纯INSERT语句,它不更新任何行。
https://stackoverflow.com/questions/4548637
复制相似问题