所以我已经试着自己解决这个问题好几个小时了,这让我抓狂。
我只是想在mySQL数据库中输入一个日期,代码如下:
$timeStarted = date("Y-m-d H:i:s", time());
$sqlquery = "INSERT INTO deviceStats (currTime, ...) VALUES ($timeStarted, ...)";
mysql_query($sqlquery);
echo $timeStarted;
我的ajax返回告诉我$timeStarted是propper格式的,它给出了正确的时间,但如果我的查询中有这个变量,它就不会运行。DB中的currTime字段被设置为datetime,因此它应该可以工作。
为什么不直接使用NOW()?
$sqlquery = "INSERT INTO deviceStats (currTime, ...) VALUES (NOW(), ...);
您的问题是MySQL中的日期字符串正是字符串,因此必须加引号(单引号),或者最好作为参数传递。
使用PDO,这将是一个非常简单的
$stmt = $pdo->prepare('INSERT INTO `deviceStats` (`currTime`, ...) VALUES (?, ...)');
$ts = date('Y-m-d H:i:s');
$stmt->bindParam(1, $ts);
$stmt->execute();
echo $ts;