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 相关文章推荐
我常用的几个类
Oct 09 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
php 删除数组元素
Jan 16 PHP
php SQL Injection with MySQL
Feb 27 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
PHP加密扩展库Mcrypt安装和实例
Nov 10 PHP
PHP之uniqid()函数用法
Nov 03 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php插件Xajax使用方法详解
Aug 31 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
php实现每日签到功能
Nov 29 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生成不重复标识符的方法
2014/11/21 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python绘制玫瑰的实现代码
2020/03/02 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Jupyter加载文件的实现方法
2020/04/14 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
python实现双人五子棋(终端版)
2020/12/30 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
遗体告别仪式主持词
2014/03/20 职场文书
妇女工作先进事迹
2014/08/17 职场文书
民间个人借款协议书
2014/09/30 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
python数据处理之Pandas类型转换
2022/04/28 Python