ID: 29476 Comment by: madcoder at debian dot org Reported By: hugo_pl at users dot sourceforge dot net Status: No Feedback Bug Type: SQLite related Operating System: GNU/Linux, WindowsXP PHP Version: 5.0.0 New Comment:
bug is still present in PHP 5.0.5/Debian Previous Comments: ------------------------------------------------------------------------ [2005-03-14 01:00:22] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2005-03-06 22:09:42] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ [2004-08-01 00:50:38] hugo_pl at users dot sourceforge dot net Description: ------------ When I call the function: sqlite_fetch_column_types(...); or the method: fetchColumnTypes(...); of the SQLiteDatabase Object, the entire database is locked forever... and I cant modify the database until Apache is restarted. I tested this with Apache2 SAPI module, and SQLite version 2.8.14 on win32 and 2.8.13 and 2.8.14 on Linux. In all plataforms, the database is unlocked only when I restart Apache, if I never call sqlite_fetch_column_types or the method fetchColumnTypes, all runs Ok. P.S.: English is not my natural language. Reproduce code: --------------- <?php // Open a database file... $db = sqlite_open('test.db'); sqlite_busy_timeout($db, 1000); //! Uncomment this line to see the bug!! //sqlite_fetch_column_types($db, 'papers'); sqlite_query($db, 'select * from papers limit 10'); // Any Update query and kabbom... =/ sqlite_query($db, 'update papers set papel="Hi" where id=1'); sqlite_close($db); ?> Expected result: ---------------- No warnings about a locked database when I send the update query Actual result: -------------- Warning: sqlite_query() [function.sqlite-query]: database is locked... ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29476&edit=1
