包 | database |
---|---|
类层次 | class QDB_Result_Abstract |
版本 | $Id: abstract.php 2539 2009-06-04 08:09:55Z yangyi $ |
QDB_Result_Abstract 是封装查询结果对象的抽象基础类
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$fetch_mode | const | 指示返回结果集的形式 | QDB_Result_Abstract |
$result_field_name_lower | boolean | 指示是否将查询结果中的字段名转换为全小写 | QDB_Result_Abstract |
方法 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | QDB_Result_Abstract |
__destruct() | 析构函数 | QDB_Result_Abstract |
handle() | 返回句柄 | QDB_Result_Abstract |
valid() | 指示句柄是否有效 | QDB_Result_Abstract |
free() | 释放句柄 | QDB_Result_Abstract |
fetchRow() | 从查询句柄提取一条记录 | QDB_Result_Abstract |
fetchAll() | 从查询句柄中提取记录集 | QDB_Result_Abstract |
fetchOne() | 从查询句柄提取一条记录,并返回该记录的第一个字段 | QDB_Result_Abstract |
fetchCol() | 从查询句柄提取记录集,并返回包含每行指定列数据的数组,如果 $col 为 0,则返回第一列 | QDB_Result_Abstract |
fetchAllRefby() | 返回记录集和指定字段的值集合,以及以该字段值作为索引的结果集 | QDB_Result_Abstract |
fetchObject() | 以对象方式返回数据 | QDB_Result_Abstract |
public void __construct($handle, $fetch_mode)
$handle | resource | |
$fetch_mode | const | |
{return} |
构造函数
public void __destruct()
析构函数
public resource handle()
返回句柄
public boolean valid()
指示句柄是否有效
abstract public void free()
释放句柄
abstract public array fetchRow()
从查询句柄提取一条记录
public array fetchAll()
从查询句柄中提取记录集
public mixed fetchOne()
从查询句柄提取一条记录,并返回该记录的第一个字段
public array fetchCol($col)
$col | int | |
{return} | array |
从查询句柄提取记录集,并返回包含每行指定列数据的数组,如果 $col 为 0,则返回第一列
public array fetchAllRefby($fields, $fields_value, $ref, $clean_up)
$fields | array | |
$fields_value | array | |
$ref | array | |
$clean_up | boolean | |
{return} | array |
返回记录集和指定字段的值集合,以及以该字段值作为索引的结果集
假设数据表 posts 有字段 post_id 和 title,并且包含下列数据:
+---------+-----------------------+ | post_id | title | +---------+-----------------------+ | 1 | It's live | +---------+-----------------------+ | 2 | QeePHP Recipes | +---------+-----------------------+ | 7 | QeePHP User manual | +---------+-----------------------+ | 15 | QeePHP Quickstart | +---------+-----------------------+
现在我们查询 posts 表的数据,并以 post_id 的值为结果集的索引值:
用法:
$sql = "SELECT * FROM posts"; $handle = $dbo->execute($sql); $fields_value = array(); $ref = array(); $rowset = $handle->fetchAllRefby(array('post_id'), $fields_value, $ref);
上述代码执行后,$rowset 包含 posts 表中的全部 4 条记录。 最后,$fields_value 和 $ref 是如下形式的数组:
$fields_value = array( 'post_id' => array(1, 2, 7, 15), ); $ref = array( 'post_id' => array( 1 => & array(array(...)), 2 => & array(array(...), array(...)), 7 => & array(array(...), array(...)), 15 => & array(array(...), array(...), array(...)) ), );
$ref 用 post_id 字段值作为索引值,并且指向 $rowset 中 post_id 值相同的记录。 由于是以引用方式构造的 $ref 数组,因此并不会占用双倍内存。
public mixed fetchObject($class_name, $return_first)
$class_name | string | |
$return_first | boolean | |
{return} | mixed |
以对象方式返回数据 如果设置了return_first为true,直接返回单个对象,否则返回对象集合 更多讨论,参看:http://qeephp.com/bbs/thread-7551-1-1.html