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 相关文章推荐
在线增减.htpasswd内的用户
Oct 09 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
php强制运行广告的方法
Dec 01 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 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的特殊设置
2006/10/09 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
php生成图片验证码的方法
2016/04/15 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
Python3多线程爬虫实例讲解代码
2018/01/05 Python
python实现简单flappy bird
2018/12/24 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
Python datetime 如何处理时区信息
2020/09/02 Python
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
应届大学生求职信
2013/12/01 职场文书
幼教个人求职信范文
2013/12/02 职场文书
优秀毕业生自荐信范文
2014/01/01 职场文书
英语自我评价范文
2014/01/24 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
爬山的活动方案
2014/08/16 职场文书
三年级学生期末评语
2014/12/26 职场文书
护士先进个人总结
2015/02/13 职场文书
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL