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的值
function prepare($query)
为execute()准备编译一个查询。对于某些后端数据库,这是通过仿真来实现的。返回编译后的查询句柄,出错则返回一个DB_Error对象。
function execute($stmt, $data = false)
执行编译后的查询。$stmt是由prepare返回的句柄。$data是参数数据,如果你使用的是参数查询,$data将要包含每个?参数的值
例子:
<?php
/**
* 下面是执行一个删除查询,从文章表中将指定用户的文章记录删除
*/
$sql = "delete from artilce where article.userid =$userid";
$qh = $db->prepare($sql);
if(DB::isError($qh)){
return $qh;
}
$result = $db->execute($qh);
return $result;
?>
function executeEmulateQuery($stmt, $data = false)
返回一个实际的查询字符串,供仿真prepare,execute的时候使用,内部函数。如果出错,则返回DB_Error对象
function executeMultiple( $stmt, &$data )
在同一个查询句柄上执行多个查询。$data必需是一个从0开始的数组,这个函数将 依次使用数组中的每一行数据来调用execute。这个函数一般用于参数查询。你可执行一次 查询的编译,然后将不同的参数值放入$data数组,然后就可一次同时执行查询了。需要注意,如果中间某个查询出错,剩余的查询不会继续进行而是返回错误。
function modifyQuery($query)
内部函数,用于后端数据库修正查询,后端数据库实现这个函数,然后返回进行优化和修正后查询串。例子:这是DB_mysql的实现,
<?php
function modifyQuery($query)
{
if ($this->options['optimize'] == 'portability') {
// "DELETE FROM table" gives 0 affected rows in MySQL.
// This little hack lets you know how many rows were deleted.
if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $query)) {
$query = preg_replace('/^\s*DELETE\s+FROM\s+(\S+)\s*$/',
'DELETE FROM \1 WHERE 1=1', $query);
}
}
return $query;
}
?>
function &query($query)
执行一个查询,查询成功,如果是有结果集的查询,则回一个DB_Result对象,如果没有结果集的查询则返回DB_OK。
出错则返回DB_Error对象。
function &getOne($query, $params = array())
执行查询,并返回结果集中第一行第一列的数据。$params是参数值,如果后端数据库支持,将调用prepare/execute来使用这些参数。
例子:
<?php
$sql = "select id,date from article where userid= $userid orderby date";
$last = $db->getOne($sql);
if(DB::isError($last)){
echo "出错:".DB::errorMessage($last);
}
echo "id:".$last;
?>
function &getRow($query, $fetchmode = DB_FETCHMODE_DEFAULT, $params = array())
执行查询,请返回结果集的第一条记录。
$fetchmod 指定fetch模式,如果省略,使用缺省模式。
例子:
<?php
$sql = "select * from articles order by date desc";