首頁 > php教程 > PHP开发 > 主體

Zend Framework教程之連接資料庫並執行增刪查的方法

高洛峰
發布: 2017-01-05 11:10:16
原創
1165 人瀏覽過

本文實例講述了Zend Framework教程之連接資料庫並執行增刪查的方法。分享給大家供大家參考,具體如下:

我們先要在資料庫裡建立一個叫message的表,它有三個字段.分別為id,title,content.其中id為主鍵.

現在我們開始第一步:在application資料夾下面加入一個config資料夾,並在這裡面增加一個config.ini檔案..這裡面是設定資料庫基本資訊.

如下程式碼所示:

[general]
db.adapter=PDO_MYSQL //请开启PDO扩展
db.config.host=localhost //Mysql主机
db.config.username=root //用户名
db.config.password= //密码,我这里为空
db.config.dbname=zendoophp //数据库名
登入後複製

第二步:在application下的models資料夾下增加一個Message.php檔..這裡命名是以資料表名稱相同.

<?php
class Message extends Zend_Db_Table {
protected $_name ="message";
protected $_primary = &#39;id&#39;;
}
登入後複製

第三步:接下來..我們要在我們的入口檔index.php裡加入下面程式碼如下:

//配置数据库参数,并连接数据库 
$config=new Zend_Config_Ini(&#39;./application/config/config.ini&#39;,null, true); 
Zend_Registry::set(&#39;config&#39;,$config); 
$dbAdapter=Zend_Db::factory($config->general->db->adapter,
$config->general->db->config->toArray()); 
$dbAdapter->query(&#39;SET NAMES UTF8&#39;); 
Zend_Db_Table::setDefaultAdapter($dbAdapter); 
Zend_Registry::set(&#39;dbAdapter&#39;,$dbAdapter);
登入後複製

第四步:我們就要對我們的IndexController.php控制器進行操作了..分別有四個方法.它們的作用就是增加數據,修改,

刪除數據.程序如下..(我在程序員都有註解.這裡不就多說!):

class IndexController extends Zend_Controller_Action 
{ 
 function init() 
 { 
  $this->registry = Zend_Registry::getInstance(); 
  $this->view = $this->registry[&#39;view&#39;]; 
  $this->view->baseUrl = $this->_request->getBaseUrl(); 
 } 
 function indexAction() 
 {  
  $message=new message();//实例化数据库类 
  //这里给变量赋值,在index.phtml模板里显示 
  $this->view->bodyTitle = &#39;Hello World!&#39;; 
  //取到所有数据.二维数组 
  $this->view->messages=$message->fetchAll()->toArray(); 
  //print_r( $this->view->messages); 
  echo $this->view->render(&#39;index.phtml&#39;);//显示模版 
 } 
 function addAction(){ 
 //如果是POST过来的值.就增加.否则就显示增加页面 
 if(strtolower($_SERVER[&#39;REQUEST_METHOD&#39;])==&#39;post&#39;){ 
 //过滤一些数据.不过这里还有检测一些动作没有做..
 //请大家加了..我就不多写那么多了.时间关系.. 
 Zend_Loader::loadClass(&#39;Zend_Filter_StripTags&#39;); 
 $filter=new Zend_Filter_StripTags(); 
 $content=$filter->filter(($this->_request->getPost(&#39;content&#39;))); 
 $title=$filter->filter(($this->_request->getPost(&#39;title&#39;))); 
 $message=new Message(); 
 $data=array( 
 &#39;content&#39;=>$content, 
 &#39;title&#39;=>$title
 );
 $message->insert($data); 
 unset($data); 
 echo &#39;您增加数据成功!请您 
 $this->view->baseUrl.&#39;/index/index/">返回&#39;; 
  }else{ 
   echo $this->view->render(&#39;add.phtml&#39;);//显示增加模版 
  } 
 } 
 public function editAction(){ 
 $message=new Message(); 
 $db = $message->getAdapter(); 
 Zend_Loader::loadClass(&#39;Zend_Filter_StripTags&#39;); 
 $filter=new Zend_Filter_StripTags(); 
 //同上面addAction 
 if(strtolower($_SERVER[&#39;REQUEST_METHOD&#39;])==&#39;post&#39;){ 
 $content=$filter->filter(($this->_request->getPost(&#39;content&#39;))); 
 $title=$filter->filter(($this->_request->getPost(&#39;title&#39;))); 
 $id=$filter->filter(($this->_request->getPost(&#39;id&#39;))); 
  $set=array( 
  &#39;content&#39;=>$content, 
  &#39;title&#39;=>$title
 ); 
 $where = $db->quoteInto(&#39;id = ?&#39;, $id); 
 //更新表数据 
 $message->update($set, $where) 
 unset($set);  echo &#39;您修改数据成功!请您 
 $this->view->baseUrl.&#39;/index/index/">返回&#39;; 
 }else{ 
  $id=$filter->filter(($this->_request->getParam(&#39;id&#39;))); 
 $this->view->messages=$message->fetchAll(&#39;id=&#39;.$id)->toArray(); 
  echo $this->view->render(&#39;edit.phtml&#39;);//显示编辑模版 
   } 
 } 
public function delAction() 
{ $message=new Message(); 
 //能过ID删除数据.这里有一些动作没有做.比如说没有ID页面要去哪里. 
  //.我只是给大家一个思想..所以不会那么完整 
 $id = (int)$this->_request->getParam(&#39;id&#39;); 
 if ($id > 0) { 
   $where = &#39;id = &#39; . $id; 
   $message->delete($where); 
 } 
 echo &#39;您删除数据成功!请您 
 $this->view->baseUrl.&#39;/index/index/">返回&#39;; 
 } 
}
登入後複製

第五步:就是增加對應的View.也就是網頁模板..分別是add.phtml,edit.phtml,index.phtml.

希望本文所述對大家基於Zend Framework框架的PHP程式設計有所幫助。

更多Zend Framework教程之連接資料庫並執行增刪查的方法相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板