PHP 日本研討會 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_open()dba_popen() 傳回的 Dba\Connection 實例。

回傳值

成功時回傳 true,失敗時回傳 false

變更記錄

版本 說明
8.4.0 dba 參數現在預期是 Dba\Connection 實例;先前預期是有效的 dba 資源

參見

新增註解

使用者貢獻註解 1 則註解

cbemerine at gmail dot com
15 年前
QDBM 和 GDBM 看起來是唯一能讓 dba_replace 正確運作的 DBA 處理器。DBA 處理器必須編譯或建置到您正在使用的版本中。請參閱 dba_handlers (https://php.dev.org.tw/manual/en/function.dba-handlers.php) 以取得更詳細的資訊

此外,當您在網路上搜尋時,您會看到提及與 dba_replace() 函式相關的「安全性」問題。在網路上記錄的每一個「安全性」問題中,dba_open 函式都指定了「inifile」的 DBA 處理器選項。「inifile」DBA 處理器專門用於管理 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