dba_open
(PHP 4, PHP 5, PHP 7)
dba_open — データベースをオープンする
説明
resource dba_open
(
string $path
,
string $mode
[,
string $handler
[,
mixed $...
]] )
パラメータ
-
path
-
通常のファイルシステムのパス。
-
mode
-
既存のデータベースへの読み込みアクセスには "r"、読込み/書き込み
アクセスには "w" を指定します。
読み込み/書き込みアクセスおよび存在しない場合にデータベースの作成を
するには "c" を、そして作成、削除、読込み/書き込みアクセス用には
"n" を指定します。データベースは BTree モードで作られます。
その他のモード (Hash や Queue) には対応していません。
さらに、次の文字でデータベースのロック方法を指定することができます。
.lck でデータベースをロックする場合には "l"、
データベースファイル自体をロックする場合は "d" を使用してください。
アプリケーション全体で統一した方法を用いることが重要です。
アクセスのテストを行う際にロックのために待ちたくない場合、"t" を
3 番目の文字に追加することができます。明らかにデータベースのロックが
不要な場合には、"l" や "d" の代わりに "-" を使用してロックを
行わないことができます。"d"、"l" または "-" のどれも指定されない場合、
"d"が指定されたものとしてデータベースファイルをロックします。
注意:
ひとつのデータベースファイルに同時に書き込めるのは、ひとつだけです。
dba を Web サーバーで使用している際に複数のリクエストが書き込み処理を
行う必要がある場合、他の書き込みが終わってからでないと次の書き込みを
行うことができません。また、書き込み中に読み込むことはできません。
dba 拡張モジュールは、このようなことを防止するためにロックを使用します。
以下の表を参照してください:
DBA のロック処理
既にオープンしているデータベース |
mode = "rl" |
mode = "rlt" |
mode = "wl" |
mode = "wlt" |
mode = "rd" |
mode = "rdt" |
mode = "wd" |
mode = "wdt" |
not open |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
ok |
mode = "rl" |
ok |
ok |
wait |
false |
illegal |
illegal |
illegal |
illegal |
mode = "wl" |
wait |
false |
wait |
false |
illegal |
illegal |
illegal |
illegal |
mode = "rd" |
illegal |
illegal |
illegal |
illegal |
ok |
ok |
wait |
false |
mode = "wd" |
illegal |
illegal |
illegal |
illegal |
wait |
false |
wait |
false |
- ok: 2 番目のコールは成功します。
- wait: 2 番目のコールは、最初のデータベースで dba_close() がコールされるまで待ちます。
- false: 2 番目のコールは、false を返します。
- illegal:
mode
パラメータで "l" および "d" を同時に使用することはできません。
-
handler
-
path
にアクセスする際に使用する
ハンドラの名前。
dba_open() に指定したすべてのオプションが
渡され、その機能を用いることができます。
返り値
成功した場合に正のハンドル、失敗した場合に FALSE
を返します。