If you get the error message saying "SQLite3::exec. database locked." You just need to define a busyTimeout to work around this.
SQLite3::exec
(PHP 5 >= 5.3.0)
SQLite3::exec — Führt eine ergebnislose Anfrage gegen den Datenbank-Server aus
Beschreibung
public bool SQLite3::exec
( string
$query
)Führt eine ergebnislose Anfrage gegen den Datenbank-Server aus.
Parameter-Liste
-
query -
Die auszuführende SQL-Anfrage (normalerweise eine INSERT-, UPDATE- oder DELETE-Anweisung)
Rückgabewerte
Gibt TRUE zurück, wenn die Anfrage erfolgreich war; anderenfalls FALSE
Beispiele
Beispiel #1 SQLite3::exec()-Beispiel
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE bar (bar STRING)');
?>
moodsey211 at gmail dot com ¶
2 years ago
gamag ¶
3 months ago
SQLite needs to create some temp-files (journals...) to execute certain statements, so php needs write-permission in your db-directory.
info at tellmatic dot org ¶
5 months ago
IMPORTANT! just a note:
weird behaviour when doing an exec on a sqlite db!!!
if want to execute a query on a sqlite db with exec, and your dbfile already was e.g. mode 777, and you get some php errors saying
"SQLite3::exec(): unable to open database file in ...."
and you get crazy while debugging, just add write üermissions to the whole directory for the user the webserver/php runs.
this behaviour makes absolutely NO sense, and is a source of frustration.
at least a more meaningful errormessage would be nice.
i couldnt figure out why sqlite needs write permissions for the whole dir instead of only one file. this is stupid and must be a bug!
(to be secure you have to create a directory with write permissions only for php/apache)
