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

# dba_popen

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

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

### 説明

function 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` を用いて `mode` で `path` に持続的なデータベースインスタンスを確立します。

### パラメータ

`path`
  通常のファイルシステムのパス。
`mode`
  既存のデータベースへの読み込みアクセスには "r"、読込み/書き込み アクセスには "w" を指定します。 読み込み/書き込みアクセスおよび存在しない場合にデータベースの作成を するには "c" を、そして作成、削除、読込み/書き込みアクセス用には "n" を指定します。
`handler`
  `path` にアクセスする際に使用する ハンドラの名前。 dba_popen() に指定したすべてのオプションが 渡され、その機能を用いることができます。 `handler` が `null` の場合、 デフォルトのハンドラが使われます。
`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_DIR` と `DBA_LMDB_NO_SUB_DIR` をサポートしています。

### 戻り値

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

### エラー / 例外

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

### 変更履歴

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

### 参考

- dba_open() - データベースをオープンする
- dba_close() - DBA データベースを閉じる

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open