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