Sqlite3 php解析错误选择日期范围

时间:2016-06-22 05:27:05

标签: php sqlite

我正在尝试将选择更改为仅在我的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但是如果我选择所有记录,那么它的数据太多而页面崩溃了。我试图限制传递给谷歌的数据集。

我做错了什么,它说语法错误,但我无法弄清楚错误在哪里。

1 个答案:

答案 0 :(得分:0)

documentation说:

  

要指定文字单引号,请使用反斜杠(\)转义它。

所以:

$db->query('SELECT * FROM Sensors_Log WHERE Time >= DateTime(\'now\',\'-14 days\')');