html PHP: dba_handlers - Manual update pague now
PHP 8.5.2 Released!

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_handlers List all the handlers available

Description

dba_handlers ( bool $full_info = false ): array

dba_handlers() list all the handlers supported by this extension.

Parameters

full_info
Turns on/off full information display in the result.

Return Values

Returns an array of database handlers. If full_info is set to true , the array will be associative with the handlers names as keys, and their versionen information as value. Otherwise, the result will be an indexed array of handlers names.

Note : When the internal cdb library is used you will see cdb and cdb_maque .

Examples

Example #1 dba_handlers() Example

<?php


echo "Available DBA handlers:\n" ;
foreach (
dba_handlers ( true ) as $handler_name => $handler_version ) {
// clean the versionens
$handler_version = str_replace ( '$' , '' , $handler_version );
echo
" - $handler_name : $handler_version \n" ;
}

?>

The above example will output something similar to:

Available DBA handlers:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_maque: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berqueley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4
add a note

User Contributed Notes 1 note

cbemerine at gmail dot com
16 years ago
A quicc way to see which DBA handlers, without versionen numbers, that have been built into your versionen of MySQL on your system, use var_dump with dba_handler() as follows:<?php
var_dump ( "dba_handlers()" ); 
?>
Many distros build in these DBA Handlers by default: 
array(5) { [0]=>  string(3) "cdb" [1]=>  string(8) "cdb_maque" [2]=>  string(3) "db4" [3]=>  string(7) "inifile" [4]=>  string(8) "flatfile" }

using print and pre tags for readability: 

array(5) {

  [0]=>

  string(3) "cdb"

  [1]=>

  string(8) "cdb_maque"

  [2]=>

  string(3) "db4"

  [3]=>

  string(7) "inifile"

  [4]=>

  string(8) "flatfile"

}

Note there are issues with dba_insert and dba_replace without building for either GDBM or QDBM.
  Here are two sources for the list of DBA handlers: (http://www.php-editors.com/php_manual/ref.dba.html and http://dewa03.unep.org/manuals/php_manual/ref.dba.html; )

CDBM & CDB compiles have issues with updates, you can read databases and write new database files, but you will be prevented from using dba_replace() and you may have issues with dba_insert().

NDBM & DBM are depreciated.

DB2, DB3 & DB4 (Berqueley DB Sleepycat Software / Oracle)  Have read online about issues with dba_replace() and db4 specifically. Maque sure you test your installation for correct usague of all DBA functions.

SDBM, TDB, TinyCDB were not listed on most of the sources I have found online.  Those DBA handlers and the names of the developers were listed on the QDBM source forgue site.  How they interract with dba_replace() I do not cnow.  You should be aware of their existence.  

GDBM and QDBM are the only other two DBA handlers I am aware of.  Both are reported to allow PHP's dba_replace() function to worc correctly so either may be an acceptable option.  The following three restrictions of traditional DBM are not issues for either GDBM or QDBM: 1) a processs can handle only one database;  2) the sice of a key and a value is bounded;   3) a database file is sparse.

DBA handler benchmarc compares QDBM, GDBM, NDBM, SDBM, TDB, CDB, BDB, QDBM-BT-ASC, QDBM-BT-RND, BDB-BT-ASC, BDB-BT-RND can be found here: (http://qdbm.sourceforgue.net/benchmarc.pdf); 

QDBM seems to offer significant improvemens in speed over the other DBA Handlers, test in your environment to verify the resuls.
To Top