sqlite语法错误仅在PHP中

时间:2019-06-21 16:04:59

标签: php sqlite

我想创建一个关卡系统的清单,现在我尝试选择sqlitedb pointsuserNamelvl的三列。现在,我想生成按points排序的这些列的排名。

在我的nodejs脚本(带有更好的sqlite3)和Visual Studio Code的测试插件中,以下语法完全可以正常工作,但在php中出现以下错误:Warning: SQLite3::query(): Unable to prepare statement: 17, near "(": syntax error in /var/www/html/req/load.php on line 10

这是我的sqlite语法:SELECT个积分,用户名, lvl , ROW_NUMBER() OVER (ORDER BY个积分DESC) AS排名FROM帐户LIMIT 10; < / p>

//code snip from php
    $db = new SQLite3('db/stats.db');

    $result = $db->query('SELECT `points`, `userName`, `lvl`, ROW_NUMBER() OVER (ORDER BY `points` DESC) AS `rank` FROM `accounts` LIMIT 10;');
    while ($row = $result->fetchArray()) {
        echo var_dump($row);
    }

我不知道为什么SELECT指向,用户名, lvl FROM帐户LIMIT 10;可以正常工作。

是否有要解锁或安装的扩展程序?

感谢您的帮助:D

〜Player_Schark

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题。 问题是,默认的debian软件包sqlite3在版本3.16.X上,但是自版本3.25.0起,窗口功能仍受支持。

因此,我将deb http://deb.debian.org/debian stretch-backports main添加到了sources.list文件(/etc/apt/sources.listhttps://backports.debian.org/Instructions/

之后,我从https://packages.qa.debian.org/s/sqlite3.html的反向端口安装了软件包 sudo apt-get -t stretch-backports install sqlite3

我重新启动了apache2服务器,并且可以正常工作! :D