PHP Conference Japan 2024

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_handlers列出所有可用的處理器

說明

dba_handlers(bool $full_info = false): array

dba_handlers() 列出此擴充功能支援的所有處理器。

參數

full_info

開啟/關閉結果中完整資訊的顯示。

回傳值

回傳一個資料庫處理器陣列。如果 full_info 設為 true,則該陣列將會是關聯式陣列,以處理器名稱作為鍵,其版本資訊作為值。否則,結果將會是一個以處理器名稱為元素的索引陣列。

注意事項:

當使用內建 cdb 函式庫時,您會看到 cdbcdb_make

範例

範例 #1 dba_handlers() 範例

<?php

echo "可用的 DBA 處理器:\n";
foreach (
dba_handlers(true) as $handler_name => $handler_version) {
// 清理版本資訊
$handler_version = str_replace('$', '', $handler_version);
echo
" - $handler_name: $handler_version\n";
}

?>

上述範例的輸出會類似如下:

Available DBA handlers:
 - cdb: 0.75, Revision: 1.3.2.3 
 - cdb_make: 0.75, Revision: 1.2.2.4 
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3 
 - flatfile: 1.0, Revision: 1.5.2.4

新增註釋

使用者貢獻的註釋 1 則註釋

cbemerine at gmail dot com
15 年前
一個快速查看系統上 MySQL 版本中已內建哪些 DBA 處理器(不含版本號)的方法,是使用 var_dump 搭配 dba_handler(),如下所示:

<?php
var_dump
( "dba_handlers()" );
?>

許多發行版預設會內建這些 DBA 處理器
array(5) { [0]=> string(3) "cdb" [1]=> string(8) "cdb_make" [2]=> string(3) "db4" [3]=> string(7) "inifile" [4]=> string(8) "flatfile" }

使用 print 和 pre 標籤以提高可讀性

array(5) {

[0]=>

string(3) "cdb"

[1]=>

string(8) "cdb_make"

[2]=>

string(3) "db4"

[3]=>

string(7) "inifile"

[4]=>

string(8) "flatfile"

}

請注意,如果沒有建置 GDBM 或 QDBM,dba_insert 和 dba_replace 會有問題。
以下是兩個 DBA 處理器列表的來源:(http://www.php-editors.com/php_manual/ref.dba.htmlhttp://dewa03.unep.org/manuals/php_manual/ref.dba.html;

CDBM 和 CDB 編譯在更新方面會有問題,您可以讀取資料庫和寫入新的資料庫檔案,但您將無法使用 dba_replace(),並且 dba_insert() 也可能會有問題。

NDBM 和 DBM 已被棄用。

DB2、DB3 和 DB4(Berkeley DB Sleepycat Software / Oracle)我在網路上讀到關於 dba_replace() 和 db4 的一些問題。請務必測試您的安裝,以確保所有 DBA 函式都能正確使用。

SDBM、TDB、TinyCDB 在我找到的大多數線上資源中都沒有列出。這些 DBA 處理程式和開發人員的名稱列在 QDBM SourceForge 網站上。我不清楚它們與 dba_replace() 如何互動。您應該注意它們的存在。

GDBM 和 QDBM 是我所知的另外兩個 DBA 處理程式。據報導,兩者都允許 PHP 的 dba_replace() 函式正常運作,因此兩者都是可接受的選項。傳統 DBM 的以下三個限制對 GDBM 和 QDBM 來說都不是問題:1) 一個程序只能處理一個資料庫;2) 鍵和值的大小有限制;3) 資料庫檔案是稀疏的。

DBA 處理程式效能基準測試比較了 QDBM、GDBM、NDBM、SDBM、TDB、CDB、BDB、QDBM-BT-ASC、QDBM-BT-RND、BDB-BT-ASC、BDB-BT-RND,可在此處找到:( http://qdbm.sourceforge.net/benchmark.pdf );

QDBM 似乎比其他 DBA 處理程式在速度上有顯著的提升,請在您的環境中進行測試以驗證結果。
To Top