ConFoo 2025

dba_popen

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_popenデータベースを持続的にオープンする

説明

dba_popen(
    string $path,
    string $mode,
    ?string $handler = null,
    int $permission = 0644,
    int $map_size = 0,
    ?int $flags = null
): Dba\Connection|false

dba_popen() は、handler を用いて modepath に持続的なデータベースインスタンスを確立します。

パラメータ

path

通常のファイルシステムのパス。

mode

既存のデータベースへの読み込みアクセスには "r"、読込み/書き込み アクセスには "w" を指定します。 読み込み/書き込みアクセスおよび存在しない場合にデータベースの作成を するには "c" を、そして作成、削除、読込み/書き込みアクセス用には "n" を指定します。

handler

path にアクセスする際に使用する ハンドラの名前。 dba_popen() に指定したすべてのオプションが 渡され、その機能を用いることができます。 handlernull の場合、 デフォルトのハンドラが使われます。

permission

ドライバに渡されるオプションの整数パラメータ。 chmod()permissions を同じ意味です。 デフォルトは 0644 です。

db1, db2, db3, db4, dbm, gdbm, ndbm, lmdbドライバが permission パラメータをサポートしています。

map_size

ドライバに渡されるオプションの整数パラメータ。 OS のページサイズの倍数を指定すべきです。 ゼロを指定すると、デフォルトのマップサイズが使われます。

lmdb ドライバだけが map_size パラメータを受け入れます。

flags

データベースドライバに渡すフラグ。 現状、LMDB ドライバだけが DBA_LMDB_USE_SUB_DIRDBA_LMDB_NO_SUB_DIR をサポートしています。

戻り値

成功した場合に Dba\Connection インスタンスを返します。 失敗した場合に false を返します。

エラー / 例外

handlernull が指定されているのにデフォルトのハンドラが存在しない場合、 E_WARNING レベルのエラーが発生し、 false が返されます。

変更履歴

バージョン 説明
8.4.0 Dba\Connection インスタンスを返すようになりました。 以前は リソース を返していました。
8.2.0 flags が追加されました。
8.1.0 handler は、nullable になりました。
7.3.14, 7.4.2 lmdb ドライバは、 map_size パラメータを追加でサポートしました。

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top