Zend Framework チュートリアル Zend_Db_Table_Row の使用例分析

高洛峰
リリース: 2017-01-05 09:49:59
オリジナル
1229 人が閲覧しました

この記事の例では、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 &#39;Zend/Db.php&#39;;
$params = array (
  &#39;host&#39;   => &#39;127.0.0.1&#39;,
  &#39;username&#39; => &#39;malory&#39;,
  &#39;password&#39; => &#39;******&#39;,
  &#39;dbname&#39;  => &#39;camelot&#39;
);
$db = Zend_Db::factory(&#39;PDO_MYSQL&#39;, $params);
// 为所有的Zend_Db_Table对象设置默认adapter
require_once &#39;Zend/Db/Table.php&#39;;
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(&#39;first_name = "Robin"&#39;);
//
// $row现在是一个带有多种公有属性的Zend_Db_Table_Row对象
// that map to table columns:
//
// $row->id = &#39;3&#39;
// $row->nobleTitle = &#39;Sir&#39;
// $row->firstName = &#39;Robin&#39;
// $row->favoriteColor = &#39;yellow&#39;
//
?>
ログイン後にコピー

3 です データの変更

行データの変更は非常に簡単です: 従来の方法に従ってクラス属性を変更するだけで済みます。その後、save() メソッドを呼び出して変更結果を保存します。データテーブル。

<?php
// 连接到数据库中的表
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// 从表中取回的结果数据是一个Zend_Db_Table_Row对象
$row = $table->fetchRow(&#39;first_name = "Robin"&#39;);
//
// $row现在是一个带有多种公有属性的Zend_Db_Table_Row对象
// that map to table columns:
//
// $row->id = &#39;3&#39;
// $row->nobleTitle = &#39;Sir&#39;
// $row->firstName = &#39;Robin&#39;
// $row->favoriteColor = &#39;yellow&#39;
//
// 改变favorite color字段,并且将变动存储到数据表中.
$row->favoriteColor = &#39;blue&#39;;
$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(&#39;first_name = "Robin"&#39;);
// 我们尝试修改主键值
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 プログラミング。

Zend Framework チュートリアル Zend_Db_Table_Row の使用例分析関連記事の詳細については、PHP 中国語 Web サイトに注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート