2

我有一些将记录插入 SQLite 表的代码:

$statement = $db -> prepare("INSERT INTO posts (postedOn, content, tags) VALUES (DATE('now'), :content, :tags)");
$statement -> bindParam(':content', $content);
$statement -> bindParam(':tags', $tags);

问题是postedOn 列只获取日期,而不是发布时间。我尝试使用 NOW() 代替:

$statement = $db -> prepare("INSERT INTO posts (postedOn, content, tags) VALUES (NOW(), :content, :tags)");

但我明白了

Call to a member function bindParam() on a non-object

在第一个 bindParam 调用上。如果我在 SQLite 2009 Pro 中运行它,这很好用:

INSERT INTO posts (postedOn, content, tags) VALUES (NOW(), 'some content', 'tags')

为什么不像 NOW() 那样准备?

4

2 回答 2

1

http://www.sqlite.org/lang_datefunc.html

sqlite中没有NOW()函数,请尝试'now'datetime(). SQLite 2009 Pro 必须有它自己的这个函数的实现,你可以尝试自己在 php 中实现:http: //php.net/manual/en/pdo.sqlitecreatefunction.php

于 2012-05-13T12:14:14.167 回答
1

问题是 SQLite 中不存在 NOW() 函数。而是使用datetime('NOW','localtime')这是SQLite中 NOW 函数的替代示例

于 2012-08-15T16:37:58.100 回答