Невозможно выбрать из базы данных SQLite3 (режим журнала WAL) с PHP SQLITE3 :: querySingle после обновления таблиц базы данных - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть база данных sqlite3 ~ / dir / subdir / foo.sqldb с владельцем / группой me / me и разрешениями 777 (subdir имеет разрешения 775)

У меня есть PHP-скрипт командной строки, выполненный мной/ me, который открывает эту базу данных для чтения / записи и записывает в нее данные, затем закрывает ее и завершает работу.

У меня есть веб-страница, работающая на сервере Apache на той же машине http://localhost/~me/webpage.php, которая открываетбаза данных только для чтения, чтобы получить информацию для отображения, а затем снова закрыть.

Проблема заключается в том, что, когда режим журнала базы данных имеет статус WAL (pragma journal_mode = wal), после завершения программы командной строки веб-страницаоткрывает базу данных, но не может выполнить выборку для таблиц этой базы данных

Журнал ошибок apache2 показывает:

Не удалось выбрать некоторые данные Невозможно подготовить оператор: 8, попытка записи только для чтениябаза данных, реферер: http://localhost/webpage.php

Это происходит после того, как файл -wal был создан и удален во время выполнения сценария командной строки, поэтому я не верю, что -wпричиной является файл al (он принадлежит мне / мне и имеет разрешения 777 в любом случае)

Проблема не временная, и единственное решение, которое я нашел до сих пор, - это запустить мой webpage.php наКомандная строка, как я / я, и в этот момент веб-страница, запущенная через Apache, снова может выдавать выборки в базе данных.

Если я запускаю webpage.php в командной строке от имени другого пользователя, я вижута же ошибка

Неустранимая ошибка PHP: Uncaught Исключение: невозможно подготовить оператор: 8, попытка записи базы данных только для чтения

Изменение сценария веб-страницы для открытия SQLITE3_OPEN_READWRITE не имеет значения.

Однако, если я изменю режим журнала на «удалить», это вообще не проблема, поэтому у меня есть ау / а ... но я пытаюсь понять, в чем причина этого, и, если возможно, иметь свой сценарийбыть независимым от режима журнала.

Спасибо

linux: Ubuntu 16.04 LTS PHP 7.0.32-0 ubuntu 0.16.04.1 SQLite3 3.22.0 Apache / 2.4.18 (Ubuntu)

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