(dbm 型の)データベース抽象化レイヤ関数

導入

これらの関数は、Berkeley DB 型データベースへのアクセス用の基本関数を 構成します。

これらの関数は、複数のファイルベースのデータベース用の抽象化レイヤです。 その機能は、» Sleepycat Software's DB2 でサポートされているような近代的なデータベースの 機能のサブセットに制限されています(IBM の DB2 と混同しないでください。 このデータベースは、ODBC 関数 を通じてサポートされます)。

要件

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

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

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

インストール手順

設定オプション --enable-dba=shared を使用することにより、dbm 形式のデータベースをサポートする動的に ロード可能なモジュールを有効にして PHP を構築することができます。 また、PHP の configure 行に設定スイッチ --with-XXXX を指定することにより、少なくとも以下のハンドラの一つのサポートを 追加する必要があります。

警告

PHP の configuring とコンパイルを済ませたら、コマンドラインから次の テストを実行する必要があります: php run-tests.php ext/dba これは、指定したハンドラの組み合わせが動作するかどうかを調べます。 いちばん問題のあるのは dbmndbm の組み合わせで、これらは多くの場合何らかの衝突を引き起こします。 その原因は、いくつかのシステムではこれらのライブラリが他のライブラリの 一部となっていることで。configure 時のテストでは個々のハンドラについての 設定不備は調べられますが、それらの組み合わせについてはテストできません。

サポートされるDBAハンドラ
ハンドラ configure のスイッチ
dbm dbm のサポートを有効にするには、 --with-dbm[=DIR] を追加します。

注意: dbm は一般的にはラッパで、しばしば失敗を引き起こします。 その動作をしっかり把握しており、ほんとうにそれを必要とする場合のみ dbm を使用するようにすべきです。

ndbm ndbm のサポートを有効にするには、 --with-ndbm[=DIR] を追加します。

注意: ndbm は一般的にはラッパで、しばしば失敗を引き起こします。 その動作をしっかり把握しており、ほんとうにそれを必要とする場合のみ ndbm を使用するようにすべきです。

gdbm gdbm のサポートを有効にするには、 --with-gdbm[=DIR] を追加します。
db2 db2 のサポートを有効にするには、 --with-db2[=DIR] を追加します。

注意: db2 は db3 および db4 とは同時に使えません。

db3 db3 のサポートを有効にするには、 --with-db3[=DIR] を追加します。

注意: db3 は db2 および db4 とは同時に使えません。

db4 db4 のサポートを有効にするには、 --with-db4[=DIR] を追加します。

注意: db4 は db2 および db3 とは同時に使えません。

注意: これは PHP 4.3.2 で追加されました。これ以前のバージョンでは、 --with-db3=DIR を使用し、 DIR に db4 ライブラリのパスを指定する必要する必要があります。 バージョン 4.3.0 より前の PHP では、4.1 以降のバージョンの db を使用することはできません。また、バージョン 4.1 から 4.1.24 までの db ライブラリは、どの PHP のバージョンでも利用できません。

cdb cdb のサポートを有効にするには、 --with-cdb[=DIR] を追加します。

注意: PHP 4.3.0 以降、付属する cdb ライブラリを使用するために DIR を省略することができます。この場合、cdb_make ハンドラが追加されます。 これにより cdb ファイルを作成したり、PHPのストリームを用いて ネットワーク上の cdb ファイルにアクセスできるようになります。

flatfile flatfile のサポートを有効にするには、 --with-flatfile を追加します。

注意: これは、古い dbm 拡張モジュール との互換性のために PHP 4.3.0 で追加されました。 このハンドラは、他のハンドラで必要とされるライブラリをひとつも インストールすることができない場合、そして、付属する cdb ハンドラを使用することができない場合にのみ使用してください。

inifile inifile のサポートを有効にするには、 --with-inifile を追加します。

注意: これは PHP 5.0.0 で追加されました。これにより Microsoft 形式の .ini ファイル(php.ini のような)を 読み書きできるようになります。

qdbm qdbm のサポートを有効にするには、 --with-qdbm[=DIR] を追加します。

注意: qdbm は dbm および gdbm とは同時に使えません。

注意: これは PHP 5.0.0 で追加されました。qdbm ライブラリは » http://qdbm.sourceforge.net にあります。

注意: PHP 4.3.0 までは、db2 および db3 ハンドラの両方を追加することが できましたが、内部的に使用できるのは片方だけでした。 これは、両方のファイル形式を使用することができないことを意味します。 PHP 5.0.0 以降、このような設定ミスを回避するよう設定の確認が行われます。

実行時設定

設定ディレクティブは定義されていません。

リソース型

関数 dba_open() および dba_popen() は、指定したデータベースファイルに アクセスするためのハンドルを返します。このハンドルは、他の全ての dba 関数コールで使用されます。

定義済み定数

定数は定義されていません。

Example#1 DBA の例

<?php

$id 
dba_open("/tmp/test.db""n""db2");

if (!
$id) {
    echo 
"dba_open failed\n";
    exit;
}

dba_replace("key""This is an example!"$id);

if (
dba_exists("key"$id)) {
    echo 
dba_fetch("key"$id);
    
dba_delete("key"$id);
}

dba_close($id);
?>

DBA はバイナリセーフであり、いかなる制限も受けません。しかし、 使用するデータベースの実装による全ての制約を継承します。

全てのファイルベースのデータベースは、完全に使用可能なものについて 新規に作成されたデータベースのファイルモードを設定する手段を、 提供する必要があります。 ファイルモードは、通常 dba_open() または dba_popen() に 4 番目の引数として渡されます。

dba_firstkey() および dba_nextkey() 関数を用いて全てのエントリに 連続的にアクセスすることができます。アクセスする際にデータベースを 変更できない可能性があります。

Example#2 データベースへのアクセス

<?php

// データベースをオープンする

$key dba_firstkey($id);

while (
$key != false) {
    if (
true) {          // 他の操作を後で行うためにキーを記憶する
        
$handle_later[] = $key;
    }
    
$key dba_nextkey($id);
}

foreach (
$handle_later as $val) {
    
dba_delete($val$id);
}

?>

PHPマニュアル検索

ナビゲーション

関数リスト

同一レベル項目

MaxDB PHP 拡張モジュール
Mhash 関数
GeoIP 関数
Sybase 関数
ストリーム関数
イメージ関数(image)
GNU Recode 関数
Ovrimos SQL 関数
XSL 関数
正規表現関数(Perl 互換)
Fileinfo 関数
ディレクトリ関数
Cyrus IMAP 管理関数
ID3 関数
文字型 (ctype) 関数
MySQL 改良版拡張サポート(mysqli)
SimpleXML関数
PostgreSQL 関数 (PDO_PGSQL)
DBM 関数 [非推奨]
XMLWriter 関数
Secure Shell2 関数
クラック関数 (Crack)
XSLT 関数
Tokenizer 関数
IMAP、POP3 および NNTP 関数
DB++ 関数
OpenSSL 関数
filePro 関数
エラー処理およびログ記録関数
ソケット関数
gnupg 関数
SNMP 関数
ネットワーク関数
Informix 関数
配列関数(array)
runkit 関数
XML-RPC 関数
Memcache 関数
Microsoft SQL Server および Sybase 関数 (PDO_DBLIB)
Net_Gopher
W32api 関数
関数処理関数(funchand)
CCVS API 関数 [非推奨]
vpopmail 関数
Firebird/Interbase 関数 (PDO_FIREBIRD)
Subversion 関数
DOM 関数
Ncurses 端末画面制御関数
Oracle 関数
IRC Gateway 関数
Advanced PHP Debugger (APD)
enchant 関数
その他の関数(Misc)
Classkit 関数
PHP / Java の連携
出力制御関数(output control)
PostgreSQL 関数
Pspell 関数
oggvorbis
Apache専用の関数
BBCode 関数
Rar 関数
POSIX 関数
XML パーサ関数
Oracle 関数 (PDO_OCI)
LDAP 関数
Bzip2 圧縮関数
マルチバイト文字列関数 (mbstring)
ダイレクト IO (DIO) 関数
ファイルシステム関数
NSAPI用関数
win32service 関数
Informix 関数 (PDO_INFORMIX)
CURL, Client URL Library 関数
Satellite CORBA クライアント拡張 [推奨されません]
Tidy 関数
セッション処理関数(session)
OpenAL 音声バインディング
Expect 関数
Haru PDF 関数
Phar アーカイブストリームおよびクラス
URL 関数
zlib 圧縮関数
IBM 関数 (PDO_IBM)
libxml 関数
共有メモリ関数(shmop)
FTP 関数
Credit Mutuel CyberMUT 関数
.NET 関数
XMLReader 関数
Unified ODBC 関数
MySQL 関数
変数操作関数(Variable Handling)
IIS 管理関数
BCMath任意精度数学関数
i18n (国際化) 関数
Zip ファイル関数
win32ps 関数
dBase 関数
Imagick 画像ライブラリ
xattr 関数
YAZ 関数
Alternative PHP Cache (APC)
統計関数
SDO XML データアクセスサービス関数
オブジェクトプロパティとメソッドコールのオーバーロード
Mohawk Software セッションハンドラ関数
フィルタ関数
RPM ヘッダ読み込み関数
メール関数(Mail)
TCP ラッパ関数(TCP Wrappers)
SAM - Simple Asynchronous Messaging: 単純な非同期メッセージング
Oracle 関数 [推奨されません]
ODBC および DB2 関数 (PDO_ODBC)
Mcrypt 暗号化関数
PHP バイトコードコンパイラ (bcompiler)
mSQL 関数
Standard PHP Library (SPL) 関数
セマフォ・共有メモリおよび IPC 関数(semaphore)
SESAM データベース関数
GMP 関数
Radius
Newt 関数
日付・時刻関数
Parsekit 関数
Verisign Payflow Pro 関数
クラス/オブジェクト関数
Paradox ファイルアクセス
Unicode 関数
JSON 関数
Swish 関数
数学関数(Math)
mnoGoSearch 関数
Firebird/InterBase 関数
xdiff 関数
オブジェクトの集約/合成関数
Forms Data Format 関数
SOAP関数
KADM5
ハッシュ関数
Lotus Notes 関数
LZF 関数
Mimetype 関数
SCA 関数
YP/NIS 関数
ファイル改変監視関数(FAM)
ClibPDF 関数 [非推奨]
Cybercash 支払関数
Aspell関数(古い拡張モジュール)
PostgreSQL セッション保存ハンドラ
PDF 関数
カレンダー関数
プリンタ関数
Exif 関数
SQLite 関数
Shockwave Flash 関数
GNU Readline
Strings(文字列関数)
Mailparse 関数
Flash 用 Ming 関数
Microsoft SQL Server 関数
DOM XML 関数
SDO 関数
Hyperwave 関数
WDDX 関数
MCAL 関数
プロセス制御関数
SDO リレーショナルデータアクセスサービス関数
Hyperwave API 関数
FriBiDi 関数
プログラム実行関数
正規表現(regex)関数 (POSIX拡張サポート)
IBM DB2、Cloudscape および Apache Derby 関数
Ingres II 関数
(dbm 型の)データベース抽象化レイヤ関数
COM と .Net (Windows)
HTTP
PDO 関数
PHP オプションと情報(info)
qtdom 関数
muscat 関数
iconv 関数
MCVE (Monetra) 支払い関数
dbx 関数
SQLite 関数 (PDO_SQLITE)
MySQL 関数 (PDO_MYSQL)
Gettext 関数
PostScript ドキュメントの作成
FrontBase 関数
PHPマニュアル@apis
| PEARマニュアル | Smartyマニュアル | PostgreSQLマニュアル |