ID: 10380
Updated by: swm
Old Summary: dba_*open with mode 'c' problem
Reported By: [EMAIL PROTECTED]
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] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to