我正在尝试将选择更改为仅在我的sqlite数据库中包含最后这么多天的数据,但我得到解析错误,只是不知道我做错了什么。
这里是代码部分,原始命令$ results =已被注释掉,第二个引起错误。
$db = new SQLite3($_SERVER['DOCUMENT_ROOT'].'/yieldbuddy/www/sql/yieldbuddy.sqlite3');
$db->busyTimeout(2000);
#$results = $db->query('SELECT * FROM Sensors_Log');
$results = $db->query('SELECT * FROM Sensors_Log WHERE Time >= DateTime('now','-14 days')');
$rownum=0;
while ($row = $results->fetchArray()) {
$Time_array[$rownum] = $row[0];
$pH1_array[$rownum] = $row[1];
这是我在尝试查看页面时遇到的错误
PHP Parse error: syntax error, unexpected 'now' (T_STRING) in /var/www/yieldbuddy/www/graphs_2.php on line 128
表sensors_log中的第一列称为时间,基本上是日期时间格式的时间戳,该列在数据库中称为Time。我将数据传递给google visulizaiton但是如果我选择所有记录,那么它的数据太多而页面崩溃了。我试图限制传递给谷歌的数据集。
我做错了什么,它说语法错误,但我无法弄清楚错误在哪里。
答案 0 :(得分:0)
要指定文字单引号,请使用反斜杠(\)转义它。
所以:
$db->query('SELECT * FROM Sensors_Log WHERE Time >= DateTime(\'now\',\'-14 days\')');