ID: 29476 User updated by: hugo_pl at users dot sourceforge dot net Reported By: hugo_pl at users dot sourceforge dot net Status: Bogus Bug Type: SQLite related Operating System: GNU/Linux, WindowsXP PHP Version: 5.0.0 New Comment:
I'm reopening this bug. Previous Comments: ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ [2004-08-23 19:13:09] [EMAIL PROTECTED] Sorry, but your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php as this bug system is not the appropriate forum for asking support questions. Thank you for your interest in PHP. Cannot replicate the problem on any platform (Linux or Windows). Sounds like a problem with your sqlite install. ------------------------------------------------------------------------ [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