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>