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