Bug #10380 Updated: dba_*open with mode 'c' problem
| From: | swm@php.net | Date: | Sat, 12 Jan 2002 07:26:03 +0000 |
| Subject: | Bug #10380 Updated: dba_*open with mode 'c' problem | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-76730@lists.php.net to get a copy of this message | ||
ID: 10380
Updated by: swm
Old Summary: dba_*open with mode 'c' problem
Reported By: mrobinso@php.net
Old Status: Open
Status: Closed
Bug Type: DBM/DBA related
Operating System: RedHat 7.0
PHP Version: 4.0 Latest CVS (18/04/2001)
New Comment:
Fixed in current CVS
Previous Comments:
------------------------------------------------------------------------
[2001-04-18 10:02:58] mrobinso@php.net
db3 support compiled in without problems, all functions
available and working.
apache-1.3.19, php snapshot from today.
db3 3.1.14-6, devel, utils, stock rpm install in rhl-7.0.
database directory is "drwxrwxrwt";
using dba_open or dba_popen, with mode 'c', if the
database doesn't exist, it is created and the function
performs as expected. If the database already exists,
the function should open the database for read/write
access. Instead, it throws:
driver initialization failed...
despite having just created the database itself.
For example:
$dbpath = "/usr/local/db3data/test/testdb3.db3";
$dbmode = "c";
$dbhandler = "db3";
$dbh = dba_popen($dbpath,$dbmode,$dbhandler);
$mykey = "mykey";
$myval = "Hello World";
if (!dba_exists($mykey,$dbh)) {
echo "Key doesn't exist, adding it.<br>\n";
dba_insert ($mykey, $myval, $dbh);
}
else {
$storedval = dba_fetch($mykey, $dbh);
echo $storedval;
}
This snippet will work as expected if the database
doesn't exist. If it does, the error occurs, where
according to the docs it should just open the database
for read write access.
If the database exists and I change the mode to 'w',
expected behaviour occurs.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=10380&edit=1