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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
php 上传功能实例代码
Apr 13 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
请离开include_once和require_once
Jul 18 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php学习笔记之基础知识
Nov 08 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 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 float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
javascript AutoScroller 函数类
2009/05/29 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
中学运动会广播稿
2014/01/19 职场文书
学术会议主持词
2014/03/17 职场文书
企业年会主持词
2014/03/27 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
办理房产过户的委托书
2014/09/14 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫