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版本号
Oct 09 PHP
php adodb操作mysql数据库
Mar 19 PHP
PHP生成Flash动画的实现代码
Mar 12 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
php模拟post上传图片实现代码
Jun 24 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP清除缓存的几种方法总结
Sep 12 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一些错误处理的方法与技巧总结
2013/08/10 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
JSON格式化输出
2014/11/10 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
node.js基础知识汇总
2020/08/25 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
python 读写、创建 文件的方法(必看)
2016/09/12 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
浅谈Python基础之I/O模型
2017/05/11 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
人事专员的职责
2014/02/26 职场文书
大学军训感言200字
2014/02/26 职场文书
管理失职检讨书范文
2015/05/05 职场文书
学习党史心得体会2016
2016/01/23 职场文书
python - asyncio异步编程
2021/04/06 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技