(PHP 4, PHP 5, PHP 7)
dba_open — Открывает базу данных
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), блокировка будет устанавливаться на соединение, а не на сам ресурс. Это важно знать, так как в таких случаях блокировка на ресурсе просто игнорируется и необходимо будет искать другие решения. |