Zend Framework教程之Zend_Db_Table_Row用法实例分析


Posted in PHP onMarch 21, 2016

本文实例讲述了Zend Framework教程之Zend_Db_Table_Row用法。分享给大家供大家参考,具体如下:

1. 简介

Zend_Db_Table_Row是Zend Framework的行数据网关.通常来说,你不可以自己实例化Zend_Db_Table_Row, 而是通过调用Zend_Db_Table::find()方法或者Zend_Db_Table::fetchRow()方法将Zend_Db_Table_Row作为 结果数据返回过来.一旦你得到来一个Zend_Db_Table_Row对象,你可以修改记录值(体现为类的属性)然后 调用save()方法可以将更改保存到原表上.

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对象设置默认adapter
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::fetchRow()方法查询.
得到的返回结果是一个Zend_Db_Table_Row 对象,该对象的属性名采用camelCaps的形式对应数据库中带下划线的表名.
如,表名 若为first_name,那么类中的改属性则为firstName.

<?php
// 从表中取回的结果数据是一个Zend_Db_Table_Row对象
$row = $table->fetchRow('first_name = "Robin"');
//
// $row现在是一个带有多种公有属性的Zend_Db_Table_Row对象
// that map to table columns:
//
// $row->id = '3'
// $row->nobleTitle = 'Sir'
// $row->firstName = 'Robin'
// $row->favoriteColor = 'yellow'
//
?>

3. 修改数据

修改行数据是一件很轻松的事情:只需要按照常规的方法修改类属性.然后调用save()方法 就将改变的结果保存到了数据表中.

<?php
// 连接到数据库中的表
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// 从表中取回的结果数据是一个Zend_Db_Table_Row对象
$row = $table->fetchRow('first_name = "Robin"');
//
// $row现在是一个带有多种公有属性的Zend_Db_Table_Row对象
// that map to table columns:
//
// $row->id = '3'
// $row->nobleTitle = 'Sir'
// $row->firstName = 'Robin'
// $row->favoriteColor = 'yellow'
//
// 改变favorite color字段,并且将变动存储到数据表中.
$row->favoriteColor = 'blue';
$row->save();
?>

但是,你不能够修改主键的值.假如你试图进行改操作, Zend_Db_Table_Row将抛出一个异常.

<?php
// 连接到数据库中的表
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// fetch a record from the table as a Zend_Db_Table_Row object
$row = $table->fetchRow('first_name = "Robin"');
// 我们尝试修改主键值
try {
  $row->id = 5;
  echo "We should not see this message, as an exception was thrown.";
} catch (Zend_Db_Table_RowException $e) {
  echo $e->getMessage();
}
?>

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

PHP 相关文章推荐
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
深入PHP curl参数的详解
Jun 17 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
php生成网页桌面快捷方式
May 05 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 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
Zend Framework基本页面布局分析
Mar 19 #PHP
You might like
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
php四种定界符详解
2017/02/16 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python3生成随机数实例
2014/10/20 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python实现图片识别汽车功能
2018/11/30 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
python实现五子棋游戏
2019/06/18 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
销售竞赛活动方案
2014/08/23 职场文书
农行心得体会
2014/09/02 职场文书
清明节寄语2015
2015/03/23 职场文书