Zend Framework教程之Zend_Db_Table_Row用法实例分析

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Zend Framework入门教程之Zend_Db数据库操作详解

    本文实例讲述了Zend Framework中Zend_Db数据库操作方法.分享给大家供大家参考,具体如下: 引言:Zend操作数据库通过Zend_Db_Adapter 它可以连接多种数据库,可以是DB2数据库.MySQli数据库.Oracle数据库.等等. 只需要配置相应的参数就可以了. 下面通过案例来展示一下其连接数据库的过程. 连接mysql数据库 代码: <?php require_once 'Zend/Db.php'; $params = array('host'=>'127.0.0.

  • Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析

    本文实例讲述了Zend Framework框架Zend_Db_Table_Rowset用法.分享给大家供大家参考,具体如下: 1. 简介 Zend_Db_Table_Rowset是 Zend_Db_Table_Row对象集合的迭代器.通常来说,你不可以自己实例化Zend_Db_Table_Rowset, 而是通过调用Zend_Db_Table::find()方法或者fetchAll()方法将Zend_Db_Table_Rowset作为 结果数据返回过来.接下来就可以遍历Zend_Db_Table

  • Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)

    本文实例讲述了Zend Framework教程之连接数据库并执行增删查的方法.分享给大家供大家参考,具体如下: 我们先要在数据库里建立一个叫message的表,它有三个字段.分别为id,title,content.其中id为主键. 现在我们开始第一步:在application文件夹下面加入一个config文件夹,并在这里面增加一个config.ini文件..这里面是配置数据库基本信息. 如下代码所示: [general] db.adapter=PDO_MYSQL //请开启PDO扩展 db.co

  • ZendFramework框架实现连接两个或多个数据库的方法

    本文实例讲述了ZendFramework框架实现连接两个或多个数据库的方法.分享给大家供大家参考,具体如下: 配置文件: <db> <adapter>PDO_MSSQL</adapter> <config> <host>localhost</host> <port>1433</port> <username>sa</username> <password>123456<

  • 解析如何使用Zend Framework 连接数据库

    复制代码 代码如下: $db = Zend_Db::factory('Pdo_Mysql', array(                               'host'     => '127.0.0.1',                               'username' => 'root',                               'password' => '123456',                              

  • zend framework配置操作数据库实例分析

    zendframework项目环境搭建后,看了下zend framework配置操作数据库,php教程如下: 在application/configs的文件下建立一个config.ini文件 配置信息如下: [general] db.adapter=PDO_MYSQL db.config.host=localhost/IParess db.config.username=username db.config.password=password db.config.dbname=databasen

  • Zend Framework教程之Zend_Db_Table表关联实例详解

    本文实例讲述了Zend Framework中Zend_Db_Table表关联用法.分享给大家供大家参考,具体如下: 介绍: 在RDBMS中,表之间有着各种关系,有一多对应,多多对应等等. Zend框架提供了一些方法来方便我们实现这些关系. 定义关系: 下面是本文用的例子的关系定义: <?php class Accounts extends Zend_Db_Table_Abstract { protected $_name = 'accounts'; protected $_dependentTa

  • Zend Framework教程之Zend_Db_Table用法详解

    本文实例讲述了Zend_Db_Table用法.分享给大家供大家参考,具体如下: 1. 简介 Zend_Db_Table 是Zend Framework的表模块.它通过zend_db_adapter连接到 数据库,为数据库模式检查表对象,并对该表进行操作和查询. 2. 开始 首先需要为抽象类zend_db_table(ares注:该类为抽象类,所以不能直接实例 化,只能先继承该类,然后实例化子类)设定一个默认对数据库adapter;除非你 指定其他类型数据库adapter,否则,所有的zend_d

  • Zend Framework连接Mysql数据库实例分析

    本文实例讲述了Zend Framework连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 在看这些之前请确保你正确加载了PDO扩展.做法是编辑php.ini . 手动增加这两行(前面要没有分号;): extension=php_pdo.dll extension=php_pdo_mysql.dll 然后要把extension_dir 指向php_pdo.dll及php_pdo_mysql.dll所在目录,如 extension_dir = "C:/php5/ext" OK

  • Zend Framework教程之Zend_Db_Table_Row用法实例分析

    本文实例讲述了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_R

  • Zend Framework教程之Application用法实例详解

    本文实例讲述了Zend Framework教程之Application用法.分享给大家供大家参考,具体如下: Zend_Application是Zend Framework的核心组件.Zend_Application为Zend Framework应用程序提供基本功能,是程序的入口点.它的主要功能有两个:装载配置PHP环境(包括自动加载),并引导应用程序. 通常情况下,通过配置选项配置Zend_Application构造器,但也可以完全使用自定义方法配置.以下是两个使用用例. Zend_Appli

  • Zend Framework教程之Zend_Config_Ini用法分析

    本文实例讲述了Zend Framework教程之Zend_Config_Ini用法.分享给大家供大家参考,具体如下: Zend_Config_Ini允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的 INI 格式存储和读取配置数据.INI 格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长.配置数据等级结构通过用点或者句号 (.)分离键值.一个节可以扩展或者通过在节的名称之后带一个冒号(:)和被继承的配置数据的节的名称来从另一个节继承. parse_ini_file Ze

  • Zend Framework教程之Autoloading用法详解

    本文实例讲述了Zend Framework教程之Autoloading用法.分享给大家供大家参考,具体如下: 一.概述 自动加载是一种机制,无需依赖手动编写PHP代码.参考»PHP手册自动加载,一旦自动加载器被定义,你试图使用一个没有定义的类或接口的情况下,它会自动被调用. 使用自动加载,在项目中你不必担心类的存放位置.定义一个良好定义的自动加载器,您不需要考虑一个类文件相对于当前类文件的位置,您只需使用类,自动加载器将自动查找文件. 此外,自动加载,确保只加载一次,提升了性能 -所以可以用它替

  • Zend Framework动作助手Json用法实例分析

    本文实例讲述了Zend Framework动作助手Json用法.分享给大家供大家参考,具体如下: Json的使用较简单,以下是文档给出的用法: Json 用来解码和发送 JSON 响应: 当处理期望数据表响应的 AJAX 请求,JSON 响应迅速变成选择的响应. JSON 可以立即在客户端被解析,从而快速执行. JSON 动作助手完成以下任务: 如果布局是打开(enabled)的,则关闭(disable)它. 如果视图解析器(ViewRenderer)是打开的,则关闭它. 设置 'Content

  • Zend Framework教程之Zend_Config_Xml用法分析

    本文实例讲述了Zend Framework中Zend_Config_Xml用法.分享给大家供大家参考,具体如下: Zend_Config_Xml 让开发者能够存储配置数据到一个简单XML格式并通过嵌入对象属性语法来读取. XML文件的根元素(root element)不相关并可以任意命名.顶级的XML元素和配置数据的节相对应. XML格式通过嵌入XML元素到节一级元素(section-level elements)的下面来支持等级结构组织. 叶一级(leaf-level)的XML元素和配置数据的

  • Zend Framework教程之Zend_Registry对象用法分析

    本文实例讲述了Zend Framework教程之Zend_Registry对象用法.分享给大家供大家参考,具体如下: 使用对象注册表(Registry) 对象注册表(或称对象仓库)是一个用于在整个应用空间(application space)内存储对象和值的容器.通过把对象存储在其中,我们可以在整个项目的任何地方使用同一个对象.这种机制相当于一种全局存储. 我们可以通过Zend_Registry类的静态方法来使用对象注册表,另外,由于该类是一个数组对象,你可以使用数组形式来访问其中的类方法. 1

  • Zend Framework教程之MVC框架的Controller用法分析

    本文讲述了Zend Framework教程之MVC框架的Controller用法.分享给大家供大家参考,具体如下: 这里简单讲讲MVC模式中Controller的基本使用方法. 基本使用实例: root@coder-671T-M:/www/zf_demo1/application# tree. ├── Bootstrap.php ├── configs │   └── application.ini ├── controllers │   ├── ErrorController.php │  

随机推荐