我有一些代码将记录插入到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()?
答案 0 :(得分:1)
http://www.sqlite.org/lang_datefunc.html
sqlite中没有NOW()
函数,请尝试在'now'
中使用datetime()
字符串。 SQLite 2009 Pro必须拥有它自己的这个函数的实现,你可以尝试在php中自己实现:http://php.net/manual/en/pdo.sqlitecreatefunction.php
答案 1 :(得分:1)
问题是SQLite中不存在NOW()函数。而是使用日期时间('现在','本地时间')。这是NOW function in SQLite
的替代示例