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防攻击代码升级版
Dec 29 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
redis 队列操作的例子(php)
Apr 12 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 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
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python里隐藏的“禅”
2014/06/16 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
班长岗位职责
2013/11/10 职场文书
日语专业个人的求职信
2013/12/03 职场文书
优秀语文教师事迹
2014/05/18 职场文书
客房部经理岗位职责
2015/02/02 职场文书
高中生物教学反思
2016/02/20 职场文书