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 相关文章推荐
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
php除数取整示例
Apr 24 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php中spl_autoload详解
Oct 17 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 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
咖啡知识大全
2021/03/03 新手入门
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
php实现单链表的实例代码
2013/03/22 PHP
twig模板常用语句实例小结
2016/02/04 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
python代码制作configure文件示例
2014/07/28 Python
python实现删除文件与目录的方法
2014/11/10 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
医药销售求职信范文
2014/02/01 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
教师创先争优承诺书
2015/04/27 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技