PHP8 dba_open

2024-03-20 10:27 更新

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

dba_open — 开放数据库

说明

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

dba_open() 使用 建立数据库实例。pathmodehandler

参数 

path

通常是文件系统中的常规路径。

mode

它用于读取访问,用于 对现有数据库的读/写访问权限,用于读/写访问和数据库创建(如果当前不存在), 以及用于创建、截断和读/写访问。 数据库是在 BTree 模式下创建的,其他模式(如 Hash 或 Queue)创建 不支持。rwcn

此外,还可以使用下一个字符设置数据库锁定方法。 用于使用文件锁定数据库或锁定数据库文件本身。是的 重要的是,您的所有应用程序都一致地执行此操作。l.lckd

如果要测试访问权限,不想等待锁定 您可以添加为第三个字符。当你 绝对确定您不需要数据库锁定,您可以做到 因此,通过使用 instead 而不是 or .当 no 或 未使用时,dba 将锁定 在数据库文件上,就像使用 .t-lddl-d

注意

一个数据库文件只能有一个编写器。当您在 dba 上使用 dba 时 一个 Web 服务器和多个请求需要写入操作,它们可以 只能一个接一个地完成。此外,不允许在写入期间读取。 dba 扩展使用锁来防止这种情况。请参见下表:

DBA 锁定
已经开放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:第二次调用成功。
  • wait:第二个调用会一直等到第一个调用 dba_close() 为第一个调用。
  • false:第二次调用返回 false。
  • illegal:不得对参数进行混合和修饰。"l""d"mode
handler

处理程序的名称,其中 应用于访问。它被传递了 给 dba_open() 和 可以代表他们行事。如果为 null, 然后调用默认处理程序。pathhandler

permission

传递给驱动程序的可选 int 参数。它的含义与 chmod() 的参数, 并默认为 。permissions0644

、 、 、 、 、 和 驱动程序支持该参数。db1db2db3db4dbmgdbmndbmlmdbpermission

map_size

传递给驱动程序的可选 int 参数。它的值应该是 操作系统的页面大小或零,以使用默认地图大小。

只有驱动程序接受该参数。lmdbmap_size

flags

要传递给数据库驱动程序的标志。如果为 null,则将提供默认标志。 目前,只有 LMDB 驱动程序支持以下标志 DBA_LMDB_USE_SUB_DIR 和 DBA_LMDB_NO_SUB_DIR

返回值 

返回成功的正句柄 或者在失败时返回 false。

错误/异常 

返回 false,当为 null 时发出 E_WARNING 级错误,但没有默认处理程序。handler

更新日志 

版本说明
8.2.0flags已添加。
8.2.0handler现在是可为 null 的。
7.3.14, 7.4.2驱动程序现在支持其他参数。lmdbmap_size

参见 

  • dba_popen() - 持久化打开数据库
  • dba_close() - 关闭 DBA 数据库


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号