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来利用这些参数。
DB的开辟形态
DB今朝仍在不休地开辟傍边,在DB/上面有一个文件STATUS,它描写了DB类的功效和各个后端数据库的完成情形,上面是PHP4.0.6这个宣布中的开辟情形:
"x" - 已完成,但还没有测试implemented, but without tests
"t" - 已完成,然而一个或多个测试没有经由过程implemented, but one or more tests fail
"T" - 完成并经由过程全体测试implemented, passing all tests
"e" - 仿真完成,没有测试emulated, without tests
"E" - 仿真完成,经由过程全体测试emulated, passing all tests
"n" - 前往 "not capable",没有这个才能供应该项功效
"-" - 没有完成
fbsql ifx mssql oci8 pgsql
FEATURE | ibase | msql | mysql | odbc | sybase
simpleQuery x x x x x T T x T x
numCols x x x x x T T x T x
numRows x n n x x T E n T n
errorNative x n x n n T x x T n
prepare/execute e x e e e E T e E e
sequences e n n n n E T n T n
affectedRows x n x n n T T n T n
fetch modes x x x x x T T x T x
fetch absolute rows x n x x x x n x x x
transactions x x n n n n x x x n
auto-commit x x n n n n x x x n
error mapping x - e - - T T x E -
tableInfo x n n n n T n n n n