PHP8 dba_open

2024-03-20 10:27 更新

(PHP 4、PHP 5、PHP 7、PHP 8)

dba_open — 開放數(shù)據(jù)庫

說明

dba_open(
    string $path,
    string $mode,
    ?string $handler = null,
    int $permission = 0644,
    int $map_size = 0,
    ?int $flags = null
): resource|false

dba_open() 使用 建立數(shù)據(jù)庫實(shí)例。pathmodehandler

參數(shù) 

path

通常是文件系統(tǒng)中的常規(guī)路徑。

mode

它用于讀取訪問,用于 對現(xiàn)有數(shù)據(jù)庫的讀/寫訪問權(quán)限,用于讀/寫訪問和數(shù)據(jù)庫創(chuàng)建(如果當(dāng)前不存在), 以及用于創(chuàng)建、截斷和讀/寫訪問。 數(shù)據(jù)庫是在 BTree 模式下創(chuàng)建的,其他模式(如 Hash 或 Queue)創(chuàng)建 不支持。rwcn

此外,還可以使用下一個字符設(shè)置數(shù)據(jù)庫鎖定方法。 用于使用文件鎖定數(shù)據(jù)庫或鎖定數(shù)據(jù)庫文件本身。是的 重要的是,您的所有應(yīng)用程序都一致地執(zhí)行此操作。l.lckd

如果要測試訪問權(quán)限,不想等待鎖定 您可以添加為第三個字符。當(dāng)你 絕對確定您不需要數(shù)據(jù)庫鎖定,您可以做到 因此,通過使用 instead 而不是 or .當(dāng) no 或 未使用時,dba 將鎖定 在數(shù)據(jù)庫文件上,就像使用 .t-lddl-d

注意

一個數(shù)據(jù)庫文件只能有一個編寫器。當(dāng)您在 dba 上使用 dba 時 一個 Web 服務(wù)器和多個請求需要寫入操作,它們可以 只能一個接一個地完成。此外,不允許在寫入期間讀取。 dba 擴(kuò)展使用鎖來防止這種情況。請參見下表:

DBA 鎖定
已經(jīng)開放mode= “rl”mode=“rlt”mode= “wl”mode= “wlt”mode= “rd”mode= “RDT”mode= “wd”mode = "wdt"
未打開還行還行還行還行還行還行還行還行
mode= “rl”還行還行非法非法非法非法
mode= “wl”非法非法非法非法
mode= “rd”非法非法非法非法還行還行
mode= “wd”非法非法非法非法
  • OK:第二次調(diào)用成功。
  • wait:第二個調(diào)用會一直等到第一個調(diào)用 dba_close() 為第一個調(diào)用。
  • false:第二次調(diào)用返回 false。
  • illegal:不得對參數(shù)進(jìn)行混合和修飾。"l""d"mode
handler

處理程序的名稱,其中 應(yīng)用于訪問。它被傳遞了 給 dba_open() 和 可以代表他們行事。如果為 null, 然后調(diào)用默認(rèn)處理程序。pathhandler

permission

傳遞給驅(qū)動程序的可選 int 參數(shù)。它的含義與 chmod() 的參數(shù), 并默認(rèn)為 。permissions0644

、 、 、 、 、 和 驅(qū)動程序支持該參數(shù)。db1db2db3db4dbmgdbmndbmlmdbpermission

map_size

傳遞給驅(qū)動程序的可選 int 參數(shù)。它的值應(yīng)該是 操作系統(tǒng)的頁面大小或零,以使用默認(rèn)地圖大小。

只有驅(qū)動程序接受該參數(shù)。lmdbmap_size

flags

要傳遞給數(shù)據(jù)庫驅(qū)動程序的標(biāo)志。如果為 null,則將提供默認(rèn)標(biāo)志。 目前,只有 LMDB 驅(qū)動程序支持以下標(biāo)志 DBA_LMDB_USE_SUB_DIR 和 DBA_LMDB_NO_SUB_DIR。

返回值 

返回成功的正句柄 或者在失敗時返回 false。

錯誤/異常 

返回 false,當(dāng)為 null 時發(fā)出 E_WARNING 級錯誤,但沒有默認(rèn)處理程序。handler

更新日志 

版本說明
8.2.0flags已添加。
8.2.0handler現(xiàn)在是可為 null 的。
7.3.14, 7.4.2驅(qū)動程序現(xiàn)在支持其他參數(shù)。lmdbmap_size

參見 

  • dba_popen() - 持久化打開數(shù)據(jù)庫
  • dba_close() - 關(guān)閉 DBA 數(shù)據(jù)庫


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號