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 "Available DBA handlers:\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
14 年前
一个快速查看系统上 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