Да, снова SQLSTATE [HY000] [14] - PullRequest
0 голосов
/ 10 мая 2018

Я читаю все посты, насколько это возможно, в Интернете (и не только на этом замечательном форуме), я использую SQLite 5 лет назад, и до сих пор этот "баг" (я не знаю, как его назвали): SQLSTATE [HY000] [14]

  • Да, моя папка доступна для записи
  • Да, этот файл sqlite доступен для записи
  • Да, для пользователя И группы установлено значение www-data (пользователь сервера)
  • Да, я настроил sqlite и использую его на том же сервере (так что это НЕ проблема конфигурации)

Так что же происходит?

ls:

user@host:/folder/where/is/the/site$ ls -lha db_folder/
total 36K
drwxrwxr-x 3 www-data www-data 4.0K May 10 06:15 .
drwxr-xr-x 3 www-data www-data 4.0K May 10 06:34 ..
-rwxrwxrwx 1 www-data www-data  36K May 10 05:22 db.sqlite

Заранее спасибо.

РЕДАКТИРОВАТЬ: мой php-код, даже если он не очень конкретен для меня:

$db = new PDO('sqlite:dbname=./db_folder/db_file.sqlite', '', '', array(PDO::ATTR_PERSISTENT => true));
$articles = $db->query('SELECT * FROM articles ORDER BY name')->fetchAll();

1 Ответ

0 голосов
/ 10 мая 2018

Файл sqlite блокируется при записи в него процесса. См. Документацию sqlite об этом здесь .

Блокировка RESERVED сигнализирует о том, что процесс намеревается записать в базу данных в какой-то момент в будущем. Только один процесс одновременно может удерживать зарезервированную блокировку

Попробуйте закрыть базу данных sqlite после записи, поскольку ваш сценарий может пытаться повторно открывать уже открытый файл sqlite при каждом запуске.

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