自 1.91 版起,这个函数存在于 ADORecordSet 及 ADOConnection两个地方。
MoveNext( )
移动内部指针到下一笔,fields 数组将会自动的更新。如果不能移动,会回传 false 值,其它情况则会回传 true 。
范例 :
$rs = $db->Execute($sql);
if ($rs)
while (!$rs->EOF) {
ProcessArray($rs->fields);
$rs->MoveNext();
}
Move($to)
移动内部指针到指定的列 ($to) 。 列数是零基的,例如,0是第一列。fields 数组将会自动更新。对于不支持内部卷动的数据库,ADODB将会自动仿真卷动。部份数据库不支持向后卷动。对大多数的数据库言,如果 $to 的位置在 EOF 之后,$to 将会被移动到资料集的最后一笔。有些无名的数据库使用 odbc 时,可能会没有动作。
注意:这个函数使用了绝对寻址,不像 Microsoft 的 ADO。
回传值是 true 或是 false。如果是 false ,这个内部指针在大多数的实际运作上并没有移动,所以 AbsolutePosition() 将会回传指针在执行 Move() 之前最后的位置
MoveFirst()
实际上是呼叫 Move(0) 。注意,有一些数据库并不支持这个函数。
MoveLast()
实际上是呼叫 Move(RecordCount() - 1)。注意,有一些数据库并不支持这个函数。
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 。因为他们有相同的功能,会彼此交互干扰。
AbsolutePage($page=-1)
回传目前的页码,需要先呼叫 PageExecute() / CachePageExecute() 。参考 Example 8 。
AtFirstPage($status='')
如果在第一页,回传 true (1基式),需要先呼叫 PageExecute() / CachePageExecute() 。参考 Example 8 。
AtLastPage($status='')
如果在最后一页,回传 true (1基式),需要先呼叫 PageExecute() / CachePageExecute() 。参考 Example 8 。
Fields($colname)
不鼓励使用,请改以 $ADODB_FETCH_MODE 取代。
当使用原生函数库时,有些数据库函数回传具名及索引双数组(如 MySQL)。GetRowAssoc() 并不回传结合了具名及索引的数组元素。
本函数回传由 $colname 所指栏名,在目前记录里的的字段值。
字段名区分大小写。
FetchRow()
回传目前记录内容的数组,如果是文件尾(EOF),回传 false 。注意:不要把 FetchRow 和 MoveNext() 混用。
用法 :
$rs = $db->Execute($sql);
if ($rs)
while ($arr = $rs->FetchRow()) {
# process $arr
}
FetchInto(&$array)
设定 $array 到目前的记录里。如果在文件尾(EOF),回传 PEAR_Error 对象。如果成功,回传 1 (DB_OK 常数)。
如果 PEAR 未定义,当 EOF 时回传 false 。FetchRow() 很容易使用,请参考之前的例子。
FetchField($column_number)
回传一个对象,包含了所指字段的名称,类别及最大长度。如果最大长度不能被明确决定,将会回传 -1 。 行号是以 0 基为计算起点的,请参考 范例 2 。
FieldCount( )
回传资料集里字段数。
RecordCount( )
回传资料集里的记录笔数。如果无法从数据库驱动程序API里取得正确的数字,ADODB将会把所有的记录内容,存放在内存里,等全部取完后,再回传记录总笔数。这个内存可以藉由设定全域变量 $ADODB_COUNTERECS = false 而被取消(基于执行效能的理由)。当取消后,对某些数据库,RecordCount() 将会回传 -1 。相关支持状况,请参考前面的数据库支持表有详细的说明。
RowCount 和 RecordCount 是同义函数。
PO_RecordCount($table, $where)
回传在资料集里的记录笔数。如果数据库不支持,那么将回传对 $table 资料表下达以 $where 为条件的 SELECT COUNT(*) 指令后回传的值。
$numrows = $rs->PO_RecordCount("articles_table", "group=$group");
会回传数据库执行 SELECT COUNT(*) FROM articles_table WHERE group=$group 的结果。
FetchObject($toupper=true)
回传目前的记录为一个对象。如果 $toupper 为 true ,那么对象字段名将会设为大写。注意:较新的 FetchNextObject() 是取得记录对象较被建议的方式,请参看后续说明。
FetchNextObject($toupper=true)
取得目前的记录成一个对象,并且自动移动到下一个记录。如果在档尾,回传 false 。如果 $toupper 为 true ,那么对象字段名将会设为大写。
$rs = $db->Execute('select firstname,lastname from table');
if ($rs) {
while ($o = $rs->FetchNextObject()) {
print "$o->FIRSTNAME, $o->LASTNAME<BR>";
}
}
在使用 FetchNextObject() 时会影响效能,如果效能很重要,你应该使用 fields[] 数组来存取。
CurrentRow( )
目传目前资料集的记录编号,0 表示是第一笔。
AbsolutePosition( )
和 CurrentRow 是相同的函数,是为了和 ADO 兼容而存在的。
MetaType($nativeDBType[,$field_max_length],[$fieldobj])
设定资生数据库里的原生型别 $nativeDBType 为那一种通用资料型别,以及它的最大长度。请注意,如果长度未知,可以设为 -1 。字段对象可以使用 $fieldobj 传入。这对于像是 mysql 这一类字段对象有较多属性的数据库来说,是很有用的。
使用字段 blobsize 及比较 $field_max_length 去决定目前的字段是否为 blob 。
回传值:
C: character 字段,应该使用 <input type="text"> 标记来取值。
X: 文字字段(Text) , 长文字字段,使用 <textarea> 标记来显示资料。
B: Blob 字段或者大型的二位对象(像程序,图文件等)。
D: 日期字段
T: 时间字段
L: 逻辑字段(真假值)或位字段
N: 数字字段,包含自动进位、编号、整数、浮点数、实数等。
I: 整数字段
R: 序列字段,包含了序列、自动增进整数,只对被选择的数据库作用。
Close( )
关闭目前的资料集。
--------------------------------------------------------------------------------
function rs2html($adorecordset,[$tableheader_attributes], [$col_titles])
这是一个独立的函数 (rs2heml = recordset to html) ,相当于 PHP 中的 odbc_result_all 函数。本函数会输出一整个 ADORecordSet,$adorecordset 如同一个 HTML表格。$tableheader_attributes 允许你控制表格里的参数如 cellpadding,cellspacing 及 border 等的属性。最后,你可以透过 $col_titles 数组,更换数据库字段名称,使用你自己的字段抬头。这是设计用来快速除错的机制,不是一个好的表格记录浏览器。
要使用这个函数,你必需引入 tohtml.inc.php 。
rs2html 范例:
<?
include('tohtml.inc.php'); # load code common to ADOdb
include('ADOdb.inc.php'); # load code common to ADOdb
$conn = &ADONewConnection('mysql'); # create a connection
$conn->PConnect('localhost','userid','','agora');# connect to MySQL, agora db
$sql = 'select CustomerName, CustomerID from customers';
$rs = $conn->Execute($sql);
rs2html($rs,'border=2 cellpadding=3',array('Customer Name','Customer ID'));
?>
--------------------------------------------------------------------------------
欢迎进入PHP开发资源论坛讨论。·显示数码图片的EXIF信息 Discuz插件ForDisc
·在PHP中cookie和session的使用总结
·哪个CMS比较好用-Mambo出鞘,谁与争锋?
·在PHP中使用Header()函数介绍
·用PHP实现JS的escape和unescape函数功能
·Cute Editor for PHP 6.0─ 一個所見即所得
·每一個 PHP 開發者都應該認識的十個開發項
·整理的Discuz程序文件目录含义表
·使用PHP伪造sessionid做防刷新功能
·用PHP显示图片的EXIF信息
·显示数码图片的EXIF信息 Discuz插件ForDisc
·在PHP中cookie和session的使用总结
·哪个CMS比较好用-Mambo出鞘,谁与争锋?
·在PHP中使用Header()函数介绍
·用PHP实现JS的escape和unescape函数功能
·Cute Editor for PHP 6.0─ 一個所見即所得
·每一個 PHP 開發者都應該認識的十個開發項
·整理的Discuz程序文件目录含义表
- · 3分钟快速了解 Delphi for PHP 特色 (中文), PDF档
- · 购买Delphi for PHP的五大理由, PDF档
- · Delphi for PHP 使用规格介绍, PDF档
- · Delphi for PHP 問答集 (From CodeGear)
- · Delphi for PHP 产品价格表




