#29476 [Com]: sqlite_fetch_column_types locks the database forever

From: Date: Sun, 12 Dec 2004 03:00:31 +0000
Subject: #29476 [Com]: sqlite_fetch_column_types locks the database forever
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-70063@lists.php.net to get a copy of this message
 ID:               29476
 Comment by:       loranger at free dot fr
 Reported By:      hugo_pl at users dot sourceforge dot net
 Status:           Open
 Bug Type:         SQLite related
 Operating System: GNU/Linux, WindowsXP
 PHP Version:      5.0.0
 New Comment:

I've got the same annoying lock when I call this function in a loop (to
display my db schema). I'm using PHP 5.0.2 + SQLite 2.8.14 + Apache 2 on
Winxp sp2


Previous Comments:
------------------------------------------------------------------------

[2004-10-26 13:13:14] dennis at inmarket dot lviv dot ua

Yes, I have seen it myself, but didn't even think it was related to the
fetch_column_types. Thanks for the hint! Damn it really got on my
nerves! But in my case it locks only the table I have run the function
on.

------------------------------------------------------------------------

[2004-09-07 17:03:47] hugo_pl at users dot sourceforge dot net

I'm reopening this bug.

------------------------------------------------------------------------

[2004-09-07 17:02:43] hugo_pl at users dot sourceforge dot net

I'm reopening this bug.

------------------------------------------------------------------------

[2004-09-06 15:13:35] danhen at web dot de

I was able to reproduce the "database is locked"-message by using the
SQLite-OO-Interface as written (the code with try). Calling the
"normal" function sqlite_fetch_column_types() does not have this
message as result. Also the database isn't locked. Tested on W2k with
PHP 5.0.1 and Apache/1.3.29. Maybe that helps finding the reason for
that behavior.

------------------------------------------------------------------------

[2004-08-25 06:56:48] hugo_pl at users dot sourceforge dot net

Hi 
 
I think that this is a PHP bug, I made a better exemple to 
show this bug: 
 
<pre> 
<?php 
 
try { 
	$db = new SQLiteDatabase('./test.db'); 
	$db->busyTimeout(1000); 
	 
	// table exists? 
	$exists = $db->singleQuery('SELECT count(*) FROM 
sqlite_master WHERE tbl_name=\'bugtest\''); 
	if (!$exists) 
		$db->query('CREATE TABLE bugtest (a, b, c, 
d);'); 
	 
	// Without this line all runs Ok. 
	$db->fetchColumnTypes('bugtest'); 
 
	$db->query('INSERT INTO bugtest VALUES (1, 2, 3, 
4)'); 
	 
	 
	echo 'Res: <br>'; 
	print_r( $db->arrayQuery('SELECT * FROM bugtest', 
SQLITE_ASSOC) ); 
} 
catch (Exception $e) 
{ 
	echo 'Exception: ', $e->getMessage(); 
} 
 
 
?> 
 
The first time you run this script all appear to be Ok... 
the insert query is executed, etc... but the second time 
is displayed a message:  
 
Warning:  SQLiteDatabase::query() [function.query]: 
database is locked in /home/hugo/public_html/phpbug.php on 
line 16 
 
Nothing is wrong with the script, if this message appear 
something is wrong with PHP.... on windows the same bug 
occur, then it is not a problem from SQLite or Apache 
compiled by me under linux.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/29476

-- 
Edit this bug report at http://bugs.php.net/?id=29476&edit=1


Thread (16 messages)

« previous php.bugs (#70063) next »