これらの関数は、Berkeley DB 型データベースへのアクセス用の基本関数を 構成します。
これらの関数は、複数のファイルベースのデータベース用のアブストラクション ・レイヤーです。その機能は、Sleepycat Software's DB2サポートのような近代的なデータベースの機能の サブセットに制限されています。(IBMのソフトウエアDB2と混同しないで 下さい。このデータベースは、ODBC 関数 を通じてサポートされます。)
各機能の動作は、使用するデータベースの実装に依存します。 dba_optimize() および dba_sync() の ような関数は、特定のデータベースでは動作しますが、他のデータベース では機能しません。サポートされるdbaハンドラをダウンロードし、イン ストールする必要があります。
表 1DBAハンドラのリスト
ハンドラ | 注意 |
---|---|
dbm | dbm は最も古い(元祖の)Berkeley DB 型データベースです。可能なら ば使用しない方が良いでしょう。DB2およびgdbmに組み込まれている互 換性を保つための関数は、サポートされません。これは、実装されて いるのがソースレベルの互換性のみであり、元のdbmフォーマットを処 理することができないためです。 |
ndbm | ndbm は、より新型であり、dbmよりも柔軟です。 dbm固有の制約の多くをまだ有しています。(そのため、古い実装です。) |
gdbm | gdbmは、GNUデータベースマネージャ です。 |
db2 | DB2 は、Sleepycat Software's DB2 です。これは、「スタンドアローンおよびクライアント/サーバー アプリケーションの両方で高性能な組込みデータベースサポートを提供する プログラム用ツールキット」として記述されています。 |
db3 | DB3 は、Sleepycat Softwareの DB3です。 |
db4 | DB4 は、Sleepycat Software's DB4です。これは、PHP 4.4.0以降で利用可能です。 |
cdb | cdbは、固定データベースの作成・読込み用の高速で高信頼性の軽量型 パッケージです。これは、qmailの作者によるものであり、ここにあります。固定であるため、読込 み操作のみがサポートされます。 PHP 4.3.0以降、内部的なcdbライブラリにより(更新ではなく)書き 込みがサポートされています。 |
cdb_make | PHP 4.3.0以降、付属するcdbライブラリを使用する場合にcdbファ イルの(更新ではなく)作成をサポートします。 |
flatfile | これは、PHP 4.3.0以降で利用可能で、古い dbm 拡張モジュールとの互換性 のためのものであり、使用するべきではありません。 しかし、ファイルがこの形式で作成された場所でこれを使用するこ とができます。これは、configureが外部ライブラリを見付けるこ とができない場合に生じます。 |
dba_open()またはdba_popen() 関数を実行する際、引数にハンドラ名の一つを指定する必要があります。 実際に利用可能なハンドラのリストは、 phpinfo() または dba_handlers()をコールした際に表示されます。
設定オプション--enable-dba=shared を使用することにより、dbm形式のデータベースをサポートする動的にロー ド可能なモジュールを有効にしてPHPを構築することができます。 また、PHPのconfigure行に設定スイッチ --with-XXXX を指定することにより、少なくとも以下のハンドラの一つのサポートを追加 する必要があります。
表 2サポートされるDBAハンドラ
ハンドラ | configureのスイッチ |
---|---|
dbm | dbmのサポートを有効にするには、 --with-dbm[=DIR]を追加します。 |
ndbm | ndbmのサポートを有効にするには、 --with-ndbm[=DIR]を追加します。 |
gdbm | gdbmのサポートを有効にするには、 --with-gdbm[=DIR]を追加します。 |
db2 |
db2のサポートを有効にするには、
--with-db2[=DIR]を追加します。
|
db3 |
db3のサポートを有効にするには、
--with-db3[=DIR]を追加します。
|
db4 |
db4のサポートを有効にするには、
--with-db4[=DIR]を追加します。
|
cdb |
cdbのサポートを有効にするには、
--with-cdb[=DIR]を追加します。
|
flatfile |
flatfileのサポートを有効にするには、
--with-flatfileを追加します。
|
注意 PHP 4.3.0までは、db2およびdb3ハンドラの両方を追加することができま したが、内部的に使用できるのは片方だけでした。 これは、両方のファイル形式を使用することができないことを意味します。 PHP 5.0.0以降、このような設定ミスを回避するよう設定の確認が行われます。
関数 dba_open() および dba_popen() は、指定したデータベースファイルを アクセスするためのハンドルを返します。このハンドルは、他の全ての dba関数コールで使用されます。
DBAは、バイナリセーフでありいかなる制限も受けません。 DBA は、使用するデータベースの実装による全ての制約を継承します。
全てのファイルベースのデータベースは、完全に使用可能なものについて 新規に作成されたデータベースのファイルモードを設定する手段を、 提供する必要があります。 ファイルモードは、通常 dba_open() または dba_popen() に4番目の引数として渡されます。
dba_firstkey() および dba_nextkey()関数を用いて連続的に全てのエント リにアクセスすることができます。アクセスする際にデータベースを変 更できない可能性があります。