この記事の例では、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' // ?>
行データの変更は非常に簡単です: 従来の方法に従ってクラス属性を変更するだけで済みます。その後、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 プログラミング。
Zend Framework チュートリアル Zend_Db_Table_Row の使用例分析関連記事の詳細については、PHP 中国語 Web サイトに注目してください。