dba_open
(PHP 4, PHP 5, PHP 7, PHP 8)
dba_open — Open database
설명
dba_open( string $path, string $mode, string $handler = ?, string ...$args ): resource|false
dba_open()은 handler
를 사용하여 mode
가 있는 path
에 대한 데이터베이스 인스턴스를 설정합니다.
매개변수
path
- 일반적으로 파일 시스템의 일반 경로입니다.
mode
- 읽기 액세스의 경우
r
, 이미 존재하는 데이터베이스에 대한 읽기/쓰기 액세스의 경우w
, 현재 존재하지 않는 경우 읽기/쓰기 액세스 및 데이터베이스 생성의 경우c
, 생성, 자르기 및 읽기/쓰기 액세스의 경우n
입니다. 데이터베이스는 BTree 모드에서 생성되며 다른 모드(예: 해시 또는 큐)는 지원되지 않습니다.또한 다음 문자로 데이터베이스 잠금 방법을 설정할 수 있습니다.
l
을 사용하여.lck
파일로 데이터베이스를 잠그거나d
를 사용하여 데이터베이스 파일 자체를 잠급니다. 모든 애플리케이션이 이 작업을 일관되게 수행하는 것이 중요합니다.액세스를 테스트하고 잠금을 기다리지 않으려면
t
를 세 번째 문자로 추가할 수 있습니다. 데이터베이스 잠금이 필요하지 않다고 확신하는 경우l
또는d
대신-
를 사용하여 잠금을 해제할 수 있습니다.d
,l
또는-
가 사용되지 않으면dba
는d
와 마찬가지로 데이터베이스 파일을 잠급니다.메모:
하나의 데이터베이스 파일에 대해 하나의 작성자만 있을 수 있습니다. 웹 서버에서 dba를 사용하고 둘 이상의 요청에 쓰기 작업이 필요한 경우 하나씩만 수행할 수 있습니다. 쓰기 중 읽기도 허용되지 않습니다. dba 확장은 이를 방지하기 위해 잠금을 사용합니다. 다음 표를 참조하십시오.
DBA 잠금
already open mode
= "rl"mode
= "rlt"mode
= "wl"mode
= "wlt"mode
= "rd"mode
= "rdt"mode
= "wd"mode
= "wdt"not open 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:
mode
매개변수에 대해"l"
및"d"
수정자를 혼합해서는 안 됩니다.
handler
path
에 액세스하는 데 사용할 handler의 이름입니다. dba_open()에 제공된 모든 선택적 매개변수가 전달되고 이를 대신할 수 있습니다.args
- 드라이버에 전달되는 선택적 문자열 매개변수입니다.
cdb
,cdb_make
,flatfile
,inifile
,qdbm
및tcadb
드라이버는 추가 매개변수를 지원하지 않습니다.db1
,db2
,db3
,db4
,dbm
,gdbm
및ndbm
드라이버는 chmod()의$mode
매개변수와 동일한 의미를 가지며 기본값은0644
인 단일 추가 매개변수$filemode
를 지원합니다.lmdb
드라이버는 두 개의 추가 매개변수를 허용합니다. 첫 번째는$filemode
(위의 설명 참조)를 지정하는 것을 허용하고 두 번째는$mapsize
를 지정하는 것을 허용합니다. 여기서 값은 기본 맵 크기를 사용하기 위해 OS 페이지 크기의 배수이거나 0이어야 합니다.$mapsize
매개변수는 PHP 7.3.14 및 7.4.2에서 각각 지원됩니다.
반환 값
성공 시 양수 핸들을 반환하고 실패 시 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
7.3.14, 7.4.2 | lmdb 드라이버는 이제 추가 $mapsize 매개변수를 지원합니다. |
기타
- dba_popen() - 데이터베이스를 지속적으로 엽니다.
- dba_close() - DBA 데이터베이스 닫기