Zend Framework教程之Zend_Db_Table_Row用法執行個體分析,zendframework2執行個體
本文執行個體講述了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// 設定一個 adapterrequire_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對象設定預設adapterrequire_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程式設計有所協助。
您可能感興趣的文章:
- Zend Framework架構教程之Zend_Db_Table_Rowset用法執行個體分析
- Zend Framework教程之Zend_Db_Table用法詳解
- Zend Framework教程之Zend_Form組件實現表單提交並顯示錯誤提示的方法
- Zend Framework開發入門經典教程
- Zend Framework架構Smarty擴充實現方法
- Zend Framework架構路由機制程式碼分析
- Zend Framework實現具有準系統的留言本(附demo源碼下載)
- Zend Framework實現將session儲存在memcache中的方法
- Zend Framework分頁類用法詳解
- Zend Framework實現多檔案上傳功能執行個體
- Zend Framework入門之環境配置及第一個Hello World樣本(附demo源碼下載)
- Zend Framework教程之串連資料庫並執行增刪查的方法(附demo源碼下載)
- Zend Framework教程之Zend_Db_Table表關聯執行個體詳解
http://www.bkjia.com/PHPjc/1113741.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1113741.htmlTechArticleZend Framework教程之Zend_Db_Table_Row用法執行個體分析,zendframework2執行個體 本文執行個體講述了Zend Framework教程之Zend_Db_Table_Row用法。分享給大家供大家參考...