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
PHP安全编程之加密功能
Oct 09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
优化使用mysql存储session的php代码
Jan 10 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
动手学习无线电
2021/03/10 无线电
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
vue组件学习教程
2017/09/09 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
python得到电脑的开机时间方法
2018/10/15 Python
python实现简单flappy bird
2018/12/24 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
生产部经理岗位职责
2013/12/16 职场文书
12岁生日感言
2014/01/21 职场文书
揠苗助长教学反思
2014/02/04 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
毕业寄语大全
2014/04/09 职场文书
市场营销调查计划书
2014/05/02 职场文书
小学语文业务学习材料
2014/06/02 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android