Connect($host,[$user],[$password],[$database])
对服务器或资料来源$host 非持续性连结,使用者认证代码为$user ,密码为$password ,如果
服务器支持多数据库,则指定连结到数据库$database。
连结成功回传true ,失败则回传false 。
注意:如果你使用的是Microsoft ADO,而非OLEDB,你可以设定$database 参数为你正在使用
的OLEDB 资料供应器。
Execute($sql,$inputarr=false)
执行SQL 指令$sql ,如果成功,就回传一个对应的ADORecordSet 对象。
要注意的是这个指令
如果执行成功时,一定会回传一个数据集,即使是执行insert 或update 指令也一样。
回传对应的ADORecordSet 对象。
例如,如果连结的是mysql ,那么ADORecordSet_mysql 将会
被回传。
当SQL指令执行失败时会回传false 值。
ErrorMsg()
回传最后状态或是错误讯息。
即使没有错误发生,本函数也会回传一个字符串。
一般情况下,你不
需要呼叫这个函数,除非ADODB函数因为错误状态回传了false值。
注意:如果debug 旗标被激活了,SQL 错误讯息将会在Execute函数被呼叫时发生错误后出现。
Close( )
关闭数据库的连结。
PHP4 以数据库连结结束时不需要特别去清除而享有盛名,因为其参考
计数机
制会自动帮我们清除掉。
GetOne($sql)
Executes the SQL and returns the first field of the first row as an array. The
recordset and remaining rows are discarded for you automatically. If an error occur,
false is returned.
执行SQL指令,并且以数组的方式回传第一笔记录的第一个字段。
资料集及其余的记录将会被自动
清除,如果发生错误,就回传false 值。
译者注:这个功能在验证某笔记录在不在特别有用,可以减少系统内存及资源的用量。
GetRow($sql)
执行SQL指令,并且以数组的方式回传第一笔记录。
资料集及其余的记录将会被自动清除,如果发生错误,就回传false 值。
Affected_Rows( )
回传被SQL指令更新或被删除掉的数据笔数。
如果数据库不支持,回传一个false 值。
目前interbase/firebird 不支持本函数。
Insert_ID( )
回传最后插入时的自动增进值ID。
如果系统不支持,回传false。
只支持有提供自动增进或对象ID 的数据库,目前像是PostgreSQL, MySQL 以及MSSQL 都有。
PostgreSQL 回传一个OID,可以在数据库重加载时改变。
只有使用持续连结方式,当你完成一笔
交易时,这个函数才会有精确的结果。
这是因为被Execute() 宣告的连结可能和下一个Execute() 时用的连结不同。
GetAssoc([$force_array])
如果字段数大于 2 ,那么从资料集中产生一个关连式数组。
这个数组是从目前的指针起一直到档
尾(EOF)。
这个资料集的第一个字段会成为数组的索引。
如果字段数刚好是2,当这数组被每一个键
值所建立时,那么索引会直接对应到值,除非$force_array 被设成true 。
范例:
以下是我们资料集的资料:
列1: Apple, Fruit, Edible
列2: Cactus, Plant, Inedible
列3: Rose, Flower, Edible
GetAssociation 将会产生一个如下的关系型数组:
Apple => [Fruit, Edible]
Cactus => [Plant, Inedible]
Rose => [Flower,Edible]
回传值:
关连式数组,错误则传回false 。
GetArray([$number_of_rows])
从目前指针位置产生一个数组,索引值从0 到$number_of_rows - 1 。
如果$number_of_rows
没有被定义,那会到档尾(EOF)。
GetRows([$number_of_rows])
是GetArray() 的同义函数,是为了与Microsoft ADO 兼容才有的。
MoveNext( )
移动内部指针到下一笔,fields 数组将会自动的更新。
如果不能移动,会回传false 值,其它情
况则会回传true 。
范例:
$rs = $db->Execute($sql);
if ($rs)
while (!$rs->EOF) {
ProcessArray($rs->fields);
$rs->MoveNext();
}
GetRowAssoc($toUpper=true)
这个函数并不能持续的以理想的方式维持关连数组的内容(每换一笔记录,就要重新执行一次)。
使
用$ADODB_FETCH_MODE 共享变量来替代它。
回传一个包含了目前记录的关连式数组,数组的索引值就是字段名。
字段名全都是大写的,以便存
取。
要取得下一笔记录,你要呼叫MoveNext() 。
范例:
Array ( [ID] => 1 [FIRSTNAME] => Caroline [LASTNAME] => Miranda [CREATED] => 2001-07-05 )
注意:不要同时使用GetRowAssoc() 和$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC 。
因为他们有
相同的功能,会彼此交互干扰。
FetchRow()
回传目前记录内容的数组,如果是文件尾(EOF),回传false 。
注意:不要把FetchRow 和MoveNext() 混用。
用法:
$rs = $db->Execute($sql);
if ($rs)
while ($arr = $rs->FetchRow()) {
# process $arr
FetchField($column_number)
回传一个对象,包含了所指字段的名称,类别及最大长度。
如果最大长度不能被明确决定,将会回传-1 。
行号是以0 基为计算起点的,请参考范例 2 。
FieldCount( )
回传资料集里字段数。
RecordCount( )
回传资料集里的记录笔数。
如果无法从数据库驱动程序API里取得正确的数字,ADODB将会把所有的
记录内容,存放在内存里,等全部取完后,再回传记录总笔数。
这个内存可以藉由设定全域变量
$ADODB_COUNTERECS = false 而被取消(基于执行效能的理由)。
当取消后,对某些数据库,RecordCount() 将会回传-1 。
相关支持状况,请参考前面的数据库支持表有详细的说明。
RowCount 和RecordCount 是同义函数。