PHP8 dba_open
(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)创建 不支持。
r
w
c
n
此外,还可以使用下一个字符设置数据库锁定方法。 用于使用文件锁定数据库或锁定数据库文件本身。是的 重要的是,您的所有应用程序都一致地执行此操作。
l
.lckd
如果要测试访问权限,不想等待锁定 您可以添加为第三个字符。当你 绝对确定您不需要数据库锁定,您可以做到 因此,通过使用 instead 而不是 or .当 no 或 未使用时,dba 将锁定 在数据库文件上,就像使用 .
t
-
l
d
d
l
-
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
, 然后调用默认处理程序。path
handler
permission
传递给驱动程序的可选 int 参数。它的含义与 chmod() 的参数, 并默认为 。
permissions
0644
、 、 、 、 、 和 驱动程序支持该参数。
db1
db2
db3
db4
dbm
gdbm
ndbm
lmdb
permission
map_size
传递给驱动程序的可选 int 参数。它的值应该是 操作系统的页面大小或零,以使用默认地图大小。
只有驱动程序接受该参数。
lmdb
map_size
flags
要传递给数据库驱动程序的标志。如果
为 null
,则将提供默认标志。 目前,只有 LMDB 驱动程序支持以下标志DBA_LMDB_USE_SUB_DIR
和DBA_LMDB_NO_SUB_DIR
。
返回值
返回成功的正句柄 或者在失败时返回 false。
错误/异常
返回 false,当为 null 时发出 E_WARNING 级错误,但没有默认处理程序。handler
更新日志
版本 | 说明 |
---|---|
8.2.0 | flags 已添加。 |
8.2.0 | handler 现在是可为 null 的。 |
7.3.14, 7.4.2 | 驱动程序现在支持其他参数。lmdb map_size |
参见
- dba_popen() - 持久化打开数据库
- dba_close() - 关闭 DBA 数据库