Установить постоянный экземпляр базы данных

# 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_open() устанавливает постоянный экземпляр базы данных по пути `path` в режиме `mode`, используя обработчик `handler`.

### Список параметров

`path`
  Путь до файлов базы данных.
`mode`
  `r` для режима чтения, `w` для режима чтения/записи с уже существующей базой данных. `c` для режима чтения/записи и создания базы данных, если она ещё не была создана, и `n` для создания, обрезания и доступа для чтения/записи. База данных создаётся с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.
`handler`
  Имя обработчика, который будет использоваться для доступа по пути `path`. Ему передаются все необязательные параметры, заданные в dba_open(). Если параметр `handler` равен `null`, то вызывается обработчик по умолчанию.
`permission`
  Необязательный параметр, заданный целым числом (int), который передаётся драйверу. У него то же значение, что и у параметра `permissions` функции chmod(), значение по умолчанию - `0644`. Драйверы `db1`, `db2`, `db3`, `db4`, `dbm`, `gdbm`, `ndbm` и `lmdb` поддерживают параметр `permission`.
`map_size`
  Необязательный параметр, заданный целым числом (int), который передаётся драйверу. Его значение должно быть кратно размеру страницы ОС или равно нулю, чтобы использовать размер карты по умолчанию. Только драйвер `lmdb` допускает параметр `map_size`.
`flags`
  Флаги для передачи драйверам базы данных. Если указано значение `null`, будут переданы флаги по умолчанию. В настоящее время только драйвер LMDB поддерживает следующие флаги: `DBA_LMDB_USE_SUB_DIR` и `DBA_LMDB_NO_SUB_DIR`.

### Возвращаемые значения

Функция возвращает экземпляр класса Dba\Connection в случае успешного выполнения или `false`, если возникла ошибка.

### Ошибки

Функция возвращает значение `false` и выдаёт ошибку уровня `E_WARNING`, если параметр `handler` равен `null`, но нет обработчика по умолчанию.

### Список изменений

Версия | Описание
--- | ---
8.4.0 | Функция теперь возвращает экземпляр класса Dba\Connection; ранее возвращался ресурс (resource).
8.2.0 | Добавлен параметр `flags`.
8.1.0 | Параметр `handler` теперь допускает значение `null`.
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