dba_open
(PHP 4, PHP 5, PHP 7)
dba_open — Открывает базу данных
Описание
$path
, string $mode
, string $handler = ?
, string ...$args
) : resource|false
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(). -
args -
Необязательная строка (string) параметров, которые передаются драйверу.
Драйверы
cdb,cdb_make,flatfile,inifile,qdbmиtcadbне поддерживают дополнительные параметры.Драйверы
db1,db2,db3,db4,dbm,gdbm, иndbmподдерживают единственный дополнительный параметр$filemode, который имеет то же значение, что и параметр$modeфункции chmod() и по умолчанию равен0644.Драйвер
lmdbпринимает два дополнительных параметра. Первый позволяет указать$filemode(смотрите описание выше), а второй —$mapsize, где значение должно быть кратным размеру страницы ОС или ноль, чтобы использовать размер карты по умолчанию. Параметр$mapsizeподдерживается начиная с PHP 7.3.14 и 7.4.2, соответственно.
Возвращаемые значения
Возвращает обработчик в случае успешного выполнения, или false в случае возникновения ошибки.
Список изменений
| Версия | Описание |
|---|---|
| 7.3.14, 7.4.2 |
Драйвер lmdb теперь поддерживает дополнительный
параметр $mapsize.
|
Смотрите также
- dba_popen() - Установить постоянный экземпляр базы данных
- dba_close() - Закрывает базу данных DBA