百科狗-知识改变命运!

dba_handlers() - dba函数(数据库抽象层)

乐乐2年前 (2023-11-21)阅读数 31#技术干货
文章标签类似于

dba_handlers() - dba函数(数据库抽象层)

dba_handlers()

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

List all the handlers available

说明

dba_handlers([bool $full_info=FALSE]): array

dba_handlers()list all the handlers supported by this extension.

参数

$full_info

Turns on/off full information display in the result.

返回值

Returns an array of database handlers. If$full_infois set toTRUE, the array will be associative with the handlers names as keys, and their version information as value. Otherwise, the result will be an indexed array of handlers names.

Note:

When the internal cdb library is used you will seecdbandcdb_make.

范例

dba_handlers()Example


以上例程的输出类似于:

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 
A quick way to see which DBA handlers, without version numbers, that have been built into your version of MySQL on your system, use var_dump with dba_handler() as follows: 

Many distros build in these DBA Handlers by default: 
array(5) { [0]=> string(3) "cdb" [1]=> string(8) "cdb_make" [2]=> string(3) "db4" [3]=> string(7) "inifile" [4]=> string(8) "flatfile" }
using print and pre tags for readability: 
array(5) {
 [0]=>
 string(3) "cdb"
 [1]=>
 string(8) "cdb_make"
 [2]=>
 string(3) "db4"
 [3]=>
 string(7) "inifile"
 [4]=>
 string(8) "flatfile"
}
Note there are issues with dba_insert and dba_replace without building for either GDBM or QDBM.
 Here are two sources for the list of DBA handlers: (http://www.php-editors.com/php_manual/ref.dba.html and http://dewa03.unep.org/manuals/php_manual/ref.dba.html; )
CDBM & CDB compiles have issues with updates, you can read databases and write new database files, but you will be prevented from using dba_replace() and you may have issues with dba_insert().
NDBM & DBM are depreciated.
DB2, DB3 & DB4 (Berkeley DB Sleepycat Software / Oracle) Have read online about issues with dba_replace() and db4 specifically. Make sure you test your installation for correct usage of all DBA functions.
SDBM, TDB, TinyCDB were not listed on most of the sources I have found online. Those DBA handlers and the names of the developers were listed on the QDBM source forge site. How they interact with dba_replace() I do not know. You should be aware of their existence. 
GDBM and QDBM are the only other two DBA handlers I am aware of. Both are reported to allow PHP's dba_replace() function to work correctly so either may be an acceptable option. The following three restrictions of traditional DBM are not issues for either GDBM or QDBM: 1) a process can handle only one database; 2) the size of a key and a value is bounded;  3) a database file is sparse.
DBA handler benchmark compares QDBM, GDBM, NDBM, SDBM, TDB, CDB, BDB, QDBM-BT-ASC, QDBM-BT-RND, BDB-BT-ASC, BDB-BT-RND can be found here: (http://qdbm.sourceforge.net/benchmark.pdf); 
QDBM seems to offer significant improvements in speed over the other DBA Handlers, test in your environment to verify the results.

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)
{if $zbp->Config('yd1125')->foot}