Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)


Posted in PHP onMarch 21, 2016

本文实例讲述了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 = 'id';
}

第三步:接下来..我们要在我们的入口文件index.php里加入下面代码如下:

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

第四步:我们就要对我们的IndexController.php控制器进行操作了..分别有四个方法.它们的作用就是增加数据,修改,

删除数据.程序如下..(我在程序员都有注解.这里不就多说!):

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

第五步:就是增加对应的View.也就是网页模板..分别是add.phtml,edit.phtml,index.phtml.这在程序里也有注解.请大家下载文件运行查看.

完整实例代码点击此处本站下载。

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP 创建标签云函数代码
May 26 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
php实现面包屑导航例子分享
Dec 19 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 #PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 #PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 #PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 #PHP
PHP常见数组函数用法小结
Mar 21 #PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 #PHP
Zend Framework入门知识点小结
Mar 19 #PHP
You might like
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
动态表格Table类的实现
2009/08/26 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python制作小说爬虫实录
2017/08/14 Python
快速了解python leveldb
2018/01/18 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python tkinter基本属性详解
2019/09/16 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
车间班组长的职责
2013/12/13 职场文书
个人校本研修方案
2014/05/26 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
教师党员承诺书2015
2015/01/21 职场文书
开票证明
2015/06/23 职场文书
辩论会主持词
2015/07/03 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
python开发飞机大战游戏
2021/07/15 Python