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 条注释

1
cbemerine at gmail dot com
15年前
查看系统上MySQL版本中内置的DBA处理程序(不带版本号)的快速方法,如下所示使用带dba_handler()的var_dump:

<?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