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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
php 操作符与控制结构
Mar 07 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
PHP滚动日志的代码实现
Jun 10 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
Yii CGridView用法实例详解
Jul 12 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
php批量删除操作代码分享
Feb 26 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 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
一个非常实用的php文件上传类
2017/07/04 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
extjs render 用法介绍
2013/09/11 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
Angular 作用域scope的具体使用
2017/12/11 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python递归计算N!的方法
2015/05/05 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
巴西在线鞋店:Shoestock
2017/10/28 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
酒店员工培训方案
2014/06/02 职场文书
网络技术专业求职信
2014/07/13 职场文书
新郎结婚感言
2015/07/31 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers