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 또는 -가 사용되지 않으면 dbad와 마찬가지로 데이터베이스 파일을 잠급니다.

메모:

하나의 데이터베이스 파일에 대해 하나의 작성자만 있을 수 있습니다. 웹 서버에서 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, qdbmtcadb 드라이버는 추가 매개변수를 지원하지 않습니다.

db1, db2, db3,db4, dbm, gdbmndbm 드라이버는 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 매개변수를 지원합니다.

기타