DB_Common 使用参考
DB_Common类是一个通用的接口,DB跨数据库平台的能力是通过实现这个接口来做到的。如果你的数据库不在DB支持之列,你可以自己编写一个类继承DB_Common类,实现这些接口的函数。
function toString()
返回当前类的字符串描述,格式是类名:(phptype="",dbsyntax="")[connected],一般是类似于:
DB_mysql:(phptype=mysql,dbsyntax=)[connected]
function quoteString($string)
圈引一个字符串,使之在查询中能够安全地放在单引号的分界符之间。一般对于字符型的字段,我们查询的时候使用''作为分隔符,因此如果字符串中有'则会出错,这个函数把字符串中的'替换成\'.
function provides($feature)
指明当前DB的后端程序是否实现了给定的特性,返回布尔值。$feature是功能的明称,一般是:"prepare","pconnect","transactions".在后端程序的构建函数中应该设置这些值。例子:
if($db->provider("transactions")){
//支持事务
}else {
//不支持事务
}
function errorCode($nativecode)
用于将后端数据库产生的错误代码映射到DB的通用错误代码中去。内部调用。后端数据库在构建函数中应该初始化$errorcode_map属性。例子(mysql):
//在DB_mysql的构建函数中
$this->errorcode_map = array(
1004 => DB_ERROR_CANNOT_CREATE,
1005 => DB_ERROR_CANNOT_CREATE,
1006 => DB_ERROR_CANNOT_CREATE,
1007 => DB_ERROR_ALREADY_EXISTS,
1008 => DB_ERROR_CANNOT_DROP,
1046 => DB_ERROR_NODBSELECTED,
1050 => DB_ERROR_ALREADY_EXISTS,
1051 => DB_ERROR_NOSUCHTABLE,
1054 => DB_ERROR_NOSUCHFIELD,
1062 => DB_ERROR_ALREADY_EXISTS,
1064 => DB_ERROR_SYNTAX,
1100 => DB_ERROR_NOT_LOCKED,
1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
1146 => DB_ERROR_NOSUCHTABLE,
);
function errorMessage($dbcode)
返回DB错误文本信息。
function &raiseError($code = DB_ERROR, $mode = false, $level = false,$debuginfo = false, $nativecode = false)
抛出一个错误。这个函数由DB来调用。
function setFetchMode($fetchmode)
设置缺省的fetch模式。
fetchmod有以下几种:
DB_FETCHMODE_DEFAULT :使用缺省的模式
DB_FETCHMODE_ORDERED :每条记录的数据列使用数字索引,从0开始
DB_FETCHMODE_ASSOC :每条记录的数据列使用字段名索引,同查询中的字段名一致
DB_FETCHMODE_FLIPPED:如果结果集是多维的,多条记录多个字段,一般来说返回一个2维数组,第一维是记录号,标明是第几条记录,第2维的数组则使用字段名或数字索引。DB_FETCHMODE_FLIPPED则会交换这个顺序,也就是说,第一层是字段名,第2维才是记录号.
function setOption($option, $value)
设置后端数据库选项。$options,$value分别是选项名和相应的值。
一般不用直接调用,在DB_Common及其子类的构建函数中会调用这个函数。
function getOption($option)
取得某个option的值