ホームページ >php教程 >PHP开发 >Zend Framework チュートリアル: データベースに接続し、追加および削除クエリを実行する方法

Zend Framework チュートリアル: データベースに接続し、追加および削除クエリを実行する方法

高洛峰
高洛峰オリジナル
2017-01-05 11:10:161174ブラウズ

この記事の例では、データベースに接続し、追加、削除、クエリを実行する Zend Framework チュートリアルの方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

まず、データベースに message というテーブルを作成する必要があります。このテーブルには、id、title、content の 3 つのフィールドがあります。そのうち、id が主要です。

ここで最初のステップを開始します。ステップ: アプリケーション フォルダーの下に config.ini ファイルを追加します。これには、構成データベースの基本情報が含まれています。

次のコードが表示されます。

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

ステップ 2: アプリケーションの下に、models フォルダーの下に Message.php ファイルを追加します。ここでの名前は、データ テーブルの名前と同じです。

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

ステップ 3: 次に、次のコードを追加する必要があります。エントリファイル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);

ステップ4: 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;; 
 } 
}

5 番目のステップ: 対応するビュー、つまり Web ページのテンプレートを追加します。それらは add.phtml です。 edit.phtml、index.phtml.

この記事が、Zend Framework フレームワークに基づくすべての人の PHP プログラミングに役立つことを願っています。

データベースに接続してクエリの追加/削除を実行する方法に関する Zend Framework チュートリアルの詳細については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。