Das Beispiel in diesem Artikel beschreibt die Verwendung von Zend_Db_Table_Row im Zend Framework-Tutorial. Teilen Sie es wie folgt mit allen:
1. Einführung
Zend_Db_Table_Row ist das Zeilendaten-Gateway von Zend Framework. Im Allgemeinen können Sie Zend_Db_Table_Row nicht selbst instanziieren, sondern indem Sie The Zend_Db_Table aufrufen Die ::find()-Methode oder die Zend_Db_Table::fetchRow()-Methode gibt Zend_Db_Table_Row als Ergebnisdaten zurück. Sobald Sie ein Zend_Db_Table_Row-Objekt erhalten, können Sie den Datensatzwert (als Klassenattribut widergespiegelt) ändern und dann die save()-Methode aufrufen. Speichern Sie die Änderungen an der Originaltabelle.
2. Rufen Sie einen Datensatz ab
Zuerst müssen Sie eine Zend_Db_Table-Klasse instanziieren.
<?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(); ?>
Als nächstes verwenden Sie Zend_Db_Table: find()-Methode und Primärschlüssel zum Abfragen oder verwenden Sie die Zend_Db_Table::fetchRow()-Methode zum Abfragen.
Das zurückgegebene Ergebnis ist ein Zend_Db_Table_Row-Objekt, der Attributname des Objekts liegt in der Form von CamelCaps vor, die dem Unterstrichenen entspricht Tabellenname in der Datenbank.
Wenn der Tabellenname beispielsweise „Vorname“ lautet, ist das geänderte Attribut in der Klasse „Vorname“.
<?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 Daten ändern
Das ist es sehr einfach, Zeilendaten zu ändern: Sie müssen nur die Klassenattribute gemäß der herkömmlichen Methode ändern. Rufen Sie dann die Methode save() auf, um die geänderten Ergebnisse in der Datentabelle zu speichern. Sie können den Wert des Primärschlüssels nicht ändern. Wenn Sie versuchen, eine Änderungsoperation durchzuführen, löst Zend_Db_Table_Row eine Ausnahme aus.
<?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(); ?>
Ich hoffe, dass dieser Artikel für alle auf Zend basierenden PHP-Programmierungen hilfreich sein wird Rahmenrahmen.
<?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(); } ?>