SunshinePHP 2016


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

dba_handlersListar todos los gestores disponibles


array dba_handlers ([ bool $full_info = false ] )

dba_handlers() lista todos los gestores soportados por esta extensión.



Activa/desactiva la mostración de la información completa en el resultado.

Valores devueltos

Devuelve un array de gestores de bases de datos. Si full_info está establecido a TRUE, el array será asociativo con los nombres de los gestores como claves y la información de su versión com valor. De otro modo, el resultado será un array indexado de nombres de gestores.


Cuando se usa la biblioteca cdb interna verá cdb y cdb_make.


Ejemplo #1 Ejemplo de dba_handlers()


echo "Gestores de DBA disponibles:\n";
foreach (
dba_handlers(true) as $nombre_gestor => $versión_gestor) {
// limpiar las versiones
$versión_gestor str_replace('$'''$versión_gestor);
" - $nombre_gestor$versión_gestor\n";


El resultado del ejemplo sería algo similar a:

Gestores de DBA disponibles:
 - cdb: 0.75, Revision: 
 - cdb_make: 0.75, Revision: 
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 
 - flatfile: 1.0, Revision: 

add a note add a note

User Contributed Notes 1 note

cbemerine at gmail dot com
6 years ago
A quick way to see which DBA handlers, without version numbers, that have been built into your version of MySQL on your system, use var_dump with dba_handler() as follows:

( "dba_handlers()" );

Many distros build in these DBA Handlers by default:
array(5) { [0]=>  string(3) "cdb" [1]=>  string(8) "cdb_make" [2]=>  string(3) "db4" [3]=>  string(7) "inifile" [4]=>  string(8) "flatfile" }

using print and pre tags for readability:

array(5) {


  string(3) "cdb"


  string(8) "cdb_make"


  string(3) "db4"


  string(7) "inifile"


  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: ( and; )

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 (Berkeley DB Sleepycat Software / Oracle)  Have read online about issues with dba_replace() and db4 specifically. Make sure you test your installation for correct usage 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 forge site.  How they interact with dba_replace() I do not know.  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 work 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 process can handle only one database;  2) the size of a key and a value is bounded;   3) a database file is sparse.

DBA handler benchmark compares QDBM, GDBM, NDBM, SDBM, TDB, CDB, BDB, QDBM-BT-ASC, QDBM-BT-RND, BDB-BT-ASC, BDB-BT-RND can be found here: (;

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