dba_open

(PHP 4, PHP 5, PHP 7)

dba_openОткрывает базу данных

Описание

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() устанавливает экземпляр базы данных по пути path в режиме mode используя обработчик handler.

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

path

Путь до файлов базы данных.

mode

r для режима чтения, w для режима чтения/записи с уже существующей базой данных. c для режима чтения/записи и создания базы данных, если она еще не была создана, и n для создания, обрезания и доступа для чтения/записи. База данных создается с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.

Дополнительно, с помощью следующего символа, вы можете задать режим блокировки базы данных. l для блокировки базы данных с помощью файла .lck, или d для самостоятельной блокировки средствами самой базу. Важно, чтобы все ваши приложения делали это согласованно.

Если вы хотите просто проверить доступ и не хотите ждать освобождения блокировки, вы можете добавить третий символ t. Если вы абсолютно уверены, что вам не нужно использовать блокировку базы данных, вы можете использовать символ - вместо l или d. Если ни один из символов: d, l или - не задан, база данных будет использовать режим d.

Замечание:

В один момент времени может быть полько один процесс, пишущий в базу данных. Когда вы используете dba на веб-сервере, и более чем один запрос требует записи в базу данных, они могут это делать только строго по очереди. Также, в момент чтения, запись не доступна. Расширение dba использует блокировки для предотвращения нежелательного поведения. Изучите следующую таблицу:

Блокировки DBA
уже открыта mode = "rl" mode = "rlt" mode = "wl" mode = "wlt" mode = "rd" mode = "rdt" mode = "wd" mode = "wdt"
не открыта 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: второй вызов будет успешным.
  • wait: второй вызов будет ждать, пока первый не вызовет dba_close().
  • false: второй вызов вернет FALSE.
  • illegal: вы не можете смешивать модификаторы "l" и "d" в параметре mode.

handler

Имя обработчика, который будет использоваться для доступа по пути path. Ему передаются все необязательные параметры, заданные в dba_open().

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

Возвращает обработчик в случае успеха, или FALSE в случае возникновения ошибки.

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

Версия Описание
4.3.0 Стало возможным открывать файлы баз данных через сетевое соединение. Однако в случае, когда используется соединение через сокеты (такие как http или ftp), блокировка будет устанавливаться на соединение, а не на сам ресурс. Это важно знать, так как в таких случаях блокировка на ресурсе просто игнорируется и необходимо будет искать другие решения.

Смотрите также