5

我有一个数据库表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);

... notesMySQL 表中的列写入预期数据,但created_on列产生...

0000-00-00 00:00:00 

我不想使用 Unix 纪元时间戳。那么我如何让DATETIME函数 NOW()工作呢?

4

3 回答 3

10

不要NOW()作为参数传递,

INSERT INTO timetable(created_on, note) VALUES(NOW(), ?);

所以你只需要绑定笔记。

$values =array($notes);
于 2012-12-31T00:41:55.780 回答
2

NOW()作为字符串传递,而不是 mysql 表达式。

像这样使用:

INSERT INTO timetable(created_on, note)
VALUES(now(), ?);
于 2012-12-31T00:41:16.557 回答
1

The keyword NOW() is a MySQL reserved variable and needs to go into the SQL definition, can not be bind. All the SQL keywords (SELECT, FROM, WHERE, Columns names, etc) can not be bind, needs to go into the SQL declaration.

于 2017-06-28T03:30:47.517 回答