cesarcesar
11-24-2008, 11:43 AM
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) */
$handle=null;
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'");
}
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) */
$handle=null;
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'");
}