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桌面中心(三) 修改数据库
Mar 11 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
PHP面向对象法则
Feb 23 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
PHP语法小结之基础和变量
Nov 22 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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/12/25 PHP
深入php内核之php in array
2015/11/10 PHP
js 页面输出值
2008/11/30 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
Vue.js tab实现选项卡切换
2017/05/16 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
Vue 进阶之路(三)
2019/04/18 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
企业管理专业个人求职信范文
2013/09/24 职场文书
物流创业计划书
2014/02/01 职场文书
读书演讲主持词
2014/03/18 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
扬州个园导游词
2015/02/06 职场文书
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers
python缺失值填充方法示例代码
2022/12/24 Python