包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QDB_Result_Abstract

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

保护的属性

隐藏继承的属性

属性类型描述定义于
$_handle resource 查询句柄 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

属性详细说明

$fetch_mode 属性

指示返回结果集的形式

$result_field_name_lower 属性

指示是否将查询结果中的字段名转换为全小写

$_handle 属性

查询句柄

方法详细说明

__construct() 方法

public void __construct($handle, $fetch_mode)

$handle resource
$fetch_mode const
{return}

构造函数


__destruct() 方法

public void __destruct()

析构函数


handle() 方法

public resource handle()

返回句柄


valid() 方法

public boolean valid()

指示句柄是否有效


free() 方法

abstract public void free()

释放句柄


fetchRow() 方法

abstract public array fetchRow()

从查询句柄提取一条记录


fetchAll() 方法

public array fetchAll()

从查询句柄中提取记录集


fetchOne() 方法

public mixed fetchOne()

从查询句柄提取一条记录,并返回该记录的第一个字段


fetchCol() 方法

public array fetchCol($col)

$col int
{return} array

从查询句柄提取记录集,并返回包含每行指定列数据的数组,如果 $col 为 0,则返回第一列


fetchAllRefby() 方法

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 数组,因此并不会占用双倍内存。


fetchObject() 方法

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