I am able to retrieve information from a SQLite database in PHP, but not write to it. For example, this code works perfectly fine:
$db = new PDO("sqlite:foo.db");
$rowCount = $db->query("SELECT COUNT(*) FROM tblname;")->fetchColumn(0);
echo $rowCount; // works as it should
However, the following snippet results in an, ‘unable to open database file’ error:
$db = new PDO("sqlite:foo.db");
$db->exec("INSERT INTO tblname VALUES(NULL, 'val1', 'val2');") or die(print_r($db->errorInfo(), true));
When I perform the above INSERT from the command line rather than in PHP, I get the expected results (a new row in tblname):
$ sqlite3 foo.db
sqlite> INSERT INTO tblname VALUES(NULL, 'val1', 'val2');
This is my first time using PDOs (or SQLite for that matter) so any help would be greatly appreciated.
Check that the user running the PHP script has permission to write foo.db.
Also (from memory, correct me if I’m wrong) the user will need write permission on the directory containing foo.db, or else SQLite3 will throw a not-so-useful error message.