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 相关文章推荐
PHP默认安装产生系统漏洞
Oct 09 PHP
无限级别菜单的实现
Oct 09 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
完美解决PHP中文乱码
Nov 26 PHP
PHP中uploaded_files函数使用方法详解
Mar 09 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 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
Terran魔法科技
2020/03/14 星际争霸
smarty获得当前url的方法分享
2014/02/14 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
老生常谈Python基础之字符编码
2017/06/14 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python中捕获键盘的方式详解
2019/03/28 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Python selenium自动化测试模型图解
2020/04/15 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
让生命充满爱演讲稿
2014/05/10 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
学术会议邀请函
2015/01/30 职场文书
餐馆开业致辞
2015/08/01 职场文书
加强党性修养心得体会
2016/01/21 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android