SQLite3::query(): Не удается подготовить инструкцию при подготовке общего leder

#php #sqlite

#php #sqlite

Вопрос:

Sqlite предоставляет результат правильно, но когда я использую код на PHP, он выдает предупреждение, что SQLite3::query() : Не удается подготовить инструкцию.

это предупреждение связано с использованием OVER(ORDER BY) команды. если я удалю это, php отобразит результат, но когда я использую OVER, это выдает ошибку. и я не получаю ни малейшего представления о том, как это исправить.

 $sql="SELECT trandate, type, particulars, custid, custname, debit, credit, 
             SUM(CASE WHEN trandate = '$opdate' 
                      THEN $totop debit 
                      ELSE debit-credit
                 END) 
             OVER(ORDER BY date(substr(trandate, 7, 4)
                                || '-' || substr(trandate, 4, 2) 
                                || '-' || substr(trandate, 1, 2)
                               ) ASC
                 ) AS balance, notes 
      FROM inboundtrans 
      WHERE custid ='$customer' and type!='$type' 
      ORDER BY datetime(substr(trandate, 7, 4)
                        || '-' || substr(trandate, 4, 2) 
                        || '-' || substr(trandate, 1, 2)) ASC";

$query = $con->query($sql);                           
     while ($row = $query->fetchArray(SQLITE3_ASSOC)) {                              
                        echo "
                          <tr>
                          <td>{$row['trandate']}</td>
                          <td>{$row['type']}</td> 
                          <td>{$row['particulars']}</td> 
                          <td>{$row['debit']}</td> 
                          <td>{$row['credit']}</td>
                          <td>{$row['balance']}</td>
                          <td>{$row['notes']}</td>     
                          </tr>n";
                      }
  

Отображается ошибка

Предупреждение: SQLite3::query(): Не удается подготовить инструкцию: 1, рядом с «(«: синтаксическая ошибка в C:My ThemesstorelitewwwledView.php в строке 188

Неустранимая ошибка: неперехваченная ошибка: Вызов функции-члена fetchArray() при boolean в C:My Темы storelite www LEDview.php:190 Трассировка стека: #0 {main} добавлено C:My ThemesstorelitewwwledView.php в строке 190

Комментарии:

1. Используете ли вы Sqlite 3.25 или новее? Все, что было до этой версии, не понимало оконных функций.

2. Я использую SQLite версии 3.27.2

3. Тогда либо она была собрана без поддержки оконных функций (возможно, но маловероятно), либо возникла какая-то другая проблема. Вы пропустили фактическое сообщение об ошибке и не отформатировали свой post… сделайте это так, чтобы его можно было прочитать, и кто-нибудь может обнаружить проблему.

4. конечно, я отредактирую вопрос

5. Да, это ошибка, которую вы получаете из старых версий sqlite. Вы абсолютно уверены, что ваша установка php использует ту версию, о которой вы думаете? Вы проверили версию из php с помощью SQLite3::version() ?