sqlite syntaxerror только в php - PullRequest
0 голосов
/ 21 июня 2019

Я хочу создать топлист моей системы уровней, и теперь я пытаюсь выбрать три столбца из моих sqlitedb points, userName и lvl.И теперь я хочу сгенерировать ранг этих столбцов, упорядоченных по points.

В моем скрипте nodejs (с лучше-sqlite3) и в тестовом дополнении из кода Visual Studio синтаксис ниже полностью работает нормально, ноЯ получаю следующую ошибку в php: Warning: SQLite3::query(): Unable to prepare statement: 17, near "(": syntax error in /var/www/html/req/load.php on line 10

вот мой синтаксис sqlite: SELECT очков , userName , lvl , ROW_NUMBER() OVER (ORDER BY очков DESC) AS rank FROM account LIMIT 10;

//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 очков , userName , lvl FROM account LIMIT 10; полностью работает нормально.

Есть расширение, которое яразблокировать или установить?

Спасибо за помощь: D

~ Player_Schark

1 Ответ

0 голосов
/ 22 июня 2019

хорошо, я решил проблему. Проблема заключалась в том, что пакет Debian по умолчанию sqlite3 имеет версию 3.16.X, но оконные функции по-прежнему поддерживаются начиная с версии 3.25.0

Итак, я добавил deb http://deb.debian.org/debian stretch-backports main в мой файл sources.list (/etc/apt/sources.list) https://backports.debian.org/Instructions/

после этого я установил пакет из бэкпорта https://packages.qa.debian.org/s/sqlite3.html с sudo apt-get -t stretch-backports install sqlite3

Я перезапустил свой сервер apache2, и я работал! : D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...