Jump to content

Sqlite3/PDO write lock issue


Recommended Posts

ahhhhh.... Man my head hurts with all this table banging.


I'm having an issue with Sqlite not allowing me to write (UPDATE) to a table that i have just done a SELECT query on because it is "Locked" in a read only state. I have found a few articles on the web about this, but the suggested fix's seem not to work in my case. Any help is so much appreciated. Here's my code. I have commented as much as possible. I have also omitted some error checking code to trim this post.


You will see at the last db_query() is where its failing. My quetions is... How do i get the UPDATE query to work on table that was just SELECT queried? Thanks much for the help.


/* connect to the database (works) */
$dbHandle = new PDO('sqlite:'.$CFG->baseroot.'/db/mmt.db3');

function db_query($query) {
global $dbHandle;

        /* load the query (works) */
$handle = $dbHandle->query($query);

/* check to see if Fetch is necessary (works) */ 
if (substr($query,0,6) <> 'UPDATE') {

	/* do the fetch (works) */	
	$qr = $handle->fetch();


        /* fix that releases the lock (doesn't work) */

return $qr;

/* run the select query (works) */
$user = db_query("SELECT first_name FROM user WHERE id = '5'");

/* do the if (works) */
if ($user['name'] == 'John') {

/* run the update. (this does not work and throws an error) */
db_query("UPDATE user SET last_name = 'Doe' WHERE first_name = 'John'");

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.