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+mysql保存和输出文件
Oct 09 PHP
与数据库连接
Oct 09 PHP
php5 mysql分页实例代码
Apr 10 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 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
function.inc.php超越php
2006/12/09 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
js字母大小写转换实现方法总结
2013/11/13 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
python连接池实现示例程序
2013/11/26 Python
Python生成密码库功能示例
2017/05/23 Python
详解K-means算法在Python中的实现
2017/12/05 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
解决Python使用列表副本的问题
2019/12/19 Python
预备党员思想汇报范文
2014/01/11 职场文书
法律六进活动方案
2014/03/13 职场文书
教堂婚礼主持词
2014/03/14 职场文书
安全口号大全
2014/06/21 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
房贷工资证明范本
2015/06/12 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
Python学习之包与模块详解
2022/03/19 Python