Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析


Posted in PHP onMarch 21, 2016

本文实例讲述了Zend Framework框架Zend_Db_Table_Rowset用法。分享给大家供大家参考,具体如下:

1. 简介

Zend_Db_Table_Rowset是 Zend_Db_Table_Row对象集合的迭代器.通常来说,你不可以自己实例化Zend_Db_Table_Rowset, 而是通过调用Zend_Db_Table::find()方法或者fetchAll()方法将Zend_Db_Table_Rowset作为 结果数据返回过来.接下来就可以遍历Zend_Db_Table_Row对象集合并进行修改.

2. 取回结果集

首先,需要实例化一个Zend_Db_Table类.

<?php
// 设置一个 adapter
require_once 'Zend/Db.php';
$params = array (
  'host'   => '127.0.0.1',
  'username' => 'malory',
  'password' => '******',
  'dbname'  => 'camelot'
);
$db = Zend_Db::factory('PDO_MYSQL', $params);
// 为所有的Zend_Db_Table对象设置默认
require_once 'Zend/Db/Table.php';
Zend_Db_Table::setDefaultAdapter($db);
// 连接数据库表
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
?>

接下来,可以使用Zend_Db_Table::find()方法和多个键值,或者使用Zend_Db_Table::fetchAll()方法对数据库进行查询,
返回的结果是一个Zend_Db_Table_Rowset对象,可以通过该对象遍历结果集中的每一个Zend_Db_Table_Row对象.

<?php
// 从表中取回多条记录
$rowset = $table->fetchAll();
//
// $rowset现在是一个Zend_Db_Table_Rowset对象,该对象中每条记录就是一个Zend_Db_Table_Row对象
//
?>

3. 遍历结果集

Zend_Db_Table_Rowset实现了简单程序设计语言的迭代器接口,也就是说,可以对Zend_Db_Table_Rowset 对象进行循环处理,就像使用foreach()函数处理数组一样.使用这种方法取回的每一个值都是一个对应表 中数据的Zend_Db_Table_Row对象,你可以查看,修改和保存该对象的属性(即表中的字段值.)

<?php
// 连接到数据库中的表
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// 从表中取回多条记录
$rowset = $table->fetchAll();
// 显示所有的记录
foreach ($rowset as $row) {
  // $row 是一个 Zend_Db_Table_Row 对象
  echo "<p>" . htmlspecialchars($row->nobleTitle) . " "
    . htmlspecialchars($row->firstName) . "'s "
    . "favorite color is " . htmlspecialchars($row->favoriteColor)
    . ".</p>/n";
  // 更新我们显示改行的次数
  // (对应表中的"times_displayed"字段)
  $row->timesDisplayed ++;
  // 保存新记录.
  $row->save();
}
?>

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
关于PHP中Object对象的笔记分享
Jun 28 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
关于svn冲突的解决方法
Jun 21 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
php投票系统之增加与删除投票(管理员篇)
Jul 01 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 #PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 #PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 #PHP
PHP常见数组函数用法小结
Mar 21 #PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 #PHP
Zend Framework入门知识点小结
Mar 19 #PHP
Zend Framework缓存Cache用法简单实例
Mar 19 #PHP
You might like
论建造顺序的重要性
2020/03/04 星际争霸
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
全球精选男装和家居用品:Article
2020/04/13 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
求职信范文英文版
2014/01/05 职场文书
新农村建设标语
2014/06/24 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
神秘岛读书笔记
2015/07/01 职场文书
安全教育日主题班会
2015/08/13 职场文书
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android