Я пытаюсь вставить данные в мою базу данных SQlite3 (это работает через командную строку). Я дал разрешения на доступ к данным1.db 777, и все же он говорит, что он не может открыть файл.
Я получаю эту ошибку:
Warning: SQLite3::exec() [sqlite3.exec]: unable to open database file in /var/www/test.php on line 3
Используя этот код:
$db = new SQLite3('./data1.db'); $db->exec("INSERT INTO table1 (fileName) VALUES ('test.txt')");
Но странно то, что я могу читать из базы данных: (это работает)
print_r($db->querySingle('SELECT fileName FROM table1', true));
Я запускаю PHP 5.3.0
Папка, содержащая файл SQLite, должна быть записана веб-пользователем, если вы хотите внести в нее изменения. Недостаточно того, что файл .db можно записать.
См. Почему DBD :: SQLite не может вставляться в базу данных через мой скрипт CGI Perl?
Попробуйте добавить пользователя sqlite в группу, которая владеет каталогами / var / www или вручную chown -R user: user / var / www /, каталог должен быть доступен для записи пользователем sqlite.
Обратите внимание, если вы запустите PHP с CLI, вы должны использовать «sudo -u www-data php script.php», чтобы PHP мог писать на sqlite.