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 Themes \ storelite \ www \ ledView.php в строке 188
Неустранимая ошибка: ошибка Uncaught: вызов функции-члена fetchArray () для логического значения в C: \ My Themes\ storelite \ www \ ledView.php: 190 Трассировка стека: # 0 {main}, брошенный в C: \ My Themes \ storelite \ www \ ledView.php в строке 190