要件

各機能の動作は、使用するデータベースの実装に依存します。 dba_optimize および dba_sync のような関数は、特定のデータベースでは動作しますが、他のデータベースでは 機能しません。サポートされるdbaハンドラをダウンロードし、インストールする 必要があります。

DBA ハンドラのリスト
ハンドラ 注意
dbm dbm は最も古い(元祖の)Berkeley DB 型データベースです。可能なら ば使用しない方が良いでしょう。DB2 および gdbm に組み込まれている 互換性を保つための関数は、サポートされません。これは、実装されて いるのがソースレベルの互換性のみであり、元の dbm フォーマットを 処理することができないためです。
ndbm ndbm は、dbm に比べて新しく、dbm よりも柔軟です。 dbm 固有の制約の多くをまだ有しています(そのため、 推奨されません)。
gdbm Gdbm は、» GNU データベースマネージャ です。
db2 DB2 は、» Oracle Berkeley DB 2 用です。これは、「スタンドアローンおよびクライアント/サーバー アプリケーションの両方で高性能な組込みデータベースサポートを提供する プログラム用ツールキット」として記述されています。
db3 DB3 は、» Oracle Berkeley DB 3 用です。
db4 DB4 は、» Oracle Berkeley DB 4 あるいは 5 用です。 BDB 5 を使用できるのは、PHP 5.3.3 以降です。
cdb cdb は「固定データベースの作成・読込み用の、高速で高信頼性の 軽量型パッケージ」です。これは qmail の作者によるものであり、 » http://cr.yp.to/cdb.html にあります。 固定であるため、読込操作のみがサポートされます。 内部的な cdb ライブラリにより(更新ではなく) 書き込みがサポートされています。
cdb_make 付属する cdb ライブラリを使用する場合に cdb ファイルの(更新ではなく)作成をサポートします。
flatfile これは、古い dbm 拡張モジュールとの互換性の ためだけのものであり、使用するべきではありません。 しかし、ファイルがこの形式で作成された場所でこれを使用する ことができます。これは、configure が外部ライブラリを見付ける ことができない場合に生じます。
inifile これは PHP スクリプトから php.ini ファイルを書き換えられるようにします。ini ファイルを扱う場合は、 array(0=>group,1=>value_name) のような配列、あるいは "[group]value_name" のような文字列を渡します(group はオプションです)。 dba_firstkeydba_nextkey はキーを文字列形式で返しますが、 dba_key_split を用いるとそれを配列形式に 変換できます。その際に false を失うこともありません。
qdbm qdbm ライブラリは » http://fallabs.com/qdbm/index.html からダウンロードできます。
tcadb Tokyo Cabinet ライブラリは » http://fallabs.com/tokyocabinet/ からダウンロードできます。
lmdb PHP 7.2.0 以降で利用可能です。 Lightning Memory-Mapped Database ライブラリは » https://symas.com/lmdb/ からダウンロードできます。

dba_open または dba_popen 関数を実行する際、引数にハンドラ名の一つを指定する必要があります。 実際に利用可能なハンドラのリストは、 phpinfo または dba_handlers をコールした際に表示されます。