PHP Conference Japan 2024

dba_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_replace替换或插入条目

描述

dba_replace(字符串|数组 $key, 字符串 $value, Dba\Connection $dba): 布尔值

dba_replace() 使用 keyvalue 描述的条目替换或插入到由 dba 指定的数据库中。

参数

key

要替换的条目的键。

value

要替换的值。

dba

一个 Dba\Connection 实例,由 dba_open()dba_popen() 返回。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.4.0 dba 参数现在期望一个 Dba\Connection 实例;之前,期望一个有效的 dba 资源

参见

添加注释

用户贡献的注释 1 条注释

0
cbemerine at gmail dot com
15 年前
QDBM 和 GDBM 似乎是唯一允许 dba_replace 正确工作的 DBA 处理程序。DBA 处理程序必须编译或构建到您正在使用的版本中。有关更具体的信息,请参阅 dba_handlers (https://php.net/manual/en/function.dba-handlers.php)

此外,当您在线搜索时,您会看到提到与 dba_replace() 函数相关的“安全”问题。在在线记录的每个“安全”问题实例中,dba_open 函数都指定了“inifile”的 DBA 处理程序选项。DBA 处理程序“inifile”专门用于管理 ini 文件。以下是与此“安全”问题相关的 dba_open 和 dba_replace 代码片段

<?php
$source
=dba_open("/www/about.ini", "wlt", "inifile");
dba_replace("HOME","/www/",$source);
?>

我还看到网上列出了与 DB4 和 dba_replace 函数使用的错误。虽然我对这些报告持怀疑态度。不幸的是,我没有一个编译了 DB4 处理程序的数据库来检查 dba_replace 和 DB4 DBA 处理程序是否存在问题。至少您知道可能存在问题,并且可以根据需要进行检查。

假设您正在使用的软件包在构建时正确地将 DBA 处理程序“构建”或编译到您的数据库中,那么 dba_replace() 和实际数据库文件可能没有问题。如果您遇到 dba_replace() 的问题,请确保构建了 DBA 处理程序 QDBM 或 GDBM。

您不能在同一构建中同时构建 QDBM 和 GDBM,但是您可能可以在 QDBM 或 GDBM 中同时构建 INIFILE 和 FLATFILE。目前尚不清楚您是否可以在 QDBM 或 GDBM 中同时构建 db3 或 db4。似乎 DB4、CDB、INIFILE 和 FLATFILE 通常一起构建。

请参阅与 CDB 相关的 dba_handlers() 和 dba_open() 的用户贡献的注释。
To Top