我有一个数据库表timetable
,其DATETIME
字段名为created_on
。
created_on DATETIME,
notes VARCHAR(255) NOT NULL
我使用NOW()
函数通过PDO预处理语句插入当前时间。
INSERT INTO timetable(created_on, note)
VALUES(?, ?);
所以在绑定值并执行准备好的语句后......
$notes ="This is a note...";
$values =array("NOW()", $notes);
$stm->execute($values);
... MySQL表中的notes
列写入了预期的数据,但created_on
列产生了......
0000-00-00 00:00:00
我不想使用Unix纪元时间戳。那么如何让DATETIME
函数中的NOW()
生效呢?
答案 0 :(得分:8)
不要将NOW()
作为参数传递,
INSERT INTO timetable(created_on, note) VALUES(NOW(), ?);
所以你只需要绑定笔记。
$values =array($notes);
答案 1 :(得分:2)
您将NOW()
作为字符串传递,而不是mysql表达式。
用作:
INSERT INTO timetable(created_on, note)
VALUES(now(), ?);
答案 2 :(得分:1)
关键字NOW()是一个MySQL保留变量,需要进入SQL定义,不能绑定。所有SQL关键字(SELECT,FROM,WHERE,Columns名称等)都不能绑定,需要进入SQL声明。