天天看點

zend framework 資料庫操作(3)

zend framework 操作資料庫:      
  1. 在MyProject 項目配置如下 application.ini 檔案      
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1

[mysql]
db.adapter=PDO_MYSQL
db.config.host=localhost  //資料庫主機名   
db.config.username=root //使用者名
db.config.password=123456  //密碼
db.config.dbname=mydb //資料庫名
           
 這裡display_startup_errors = 1、display_errors = 1 表示顯示伺服器啟動時錯誤和程式錯誤、警告等資訊,設為 0 表示不顯示錯誤資訊      
2. 在 models 中建立一個如下的表模型 TestModes.php       
<?php
	class TestModel extends Zend_Db_Table{
		
		//預設表名為'test_model',與類名相對應,通過$_name進行重構表名
		protected $_primary='id';//主鍵(這裡如果主鍵為id可以不寫)
		protected $_name='test'; //表名
		
		//執行查詢操作,查詢 test 表中所有的資料
		public function excut_query(){
			//查詢test表中的所有資料
			$res=$this->fetchAll()->toArray();
			return $res;
		}
	}
?>
           
  3.  在indexController.php 中完成資料庫的初始化配置和調用相應的表模型執行 Action 操作      
     代碼如下:      
<?php
require_once APPLICATION_PATH . '/models/TestModel.php';
class IndexController extends Zend_Controller_Action
{
	//初始化資料庫函數
    public function init()
    {
        /* Initialize action controller here */
    	$url = "./../application/configs/application.ini";
    	//擷取配置檔案application.ini 中資料庫配置資訊
    	$dbconfig = new Zend_Config_Ini ($url, null,true);
    	//建立一個資料庫工廠
    	$db = zend_Db::factory ($dbconfig->mysql->db->adapter,$dbconfig->mysql->db->config->toArray());
    	//設定字元編碼
    	$db->query ('SET NAMES UTF8');
    	Zend_Db_Table::setDefaultAdapter ($db);
    }
	//調用表對象完成查詢
    public function indexAction()
    {
        // action body
    	$testmodel=new TestModel();
    	$res=$testmodel->excut_query();
    	//将結果配置設定給該控制器對應的視圖
    	$this->view->result=$res;
    	//調用views/scripts下的index.phtml顯示結果
        $this->render("index");
    }
}

           
  4. 在 views 中的index.phtml 中顯示結果視圖,代碼如下;      
<h1>顯示視圖資訊</h1>
<table width="400px" bgcolor="pink">
<tr><td>id</td><td>name</td><td>url</td><td>intro</td></tr>
<?php
	foreach ($this->result as $val)
	{
		echo "<tr bgcolor='white'><td>";
		echo $val['id']."</td>"."<td>".$val['name']."</td><td>";
		echo $val['url']."</td>"."<td>".$val['intro']."</td></tr>";
	}
?>
</table>