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 配置文件中open_basedir选项作用
Jul 19 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
Nov 28 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
php中memcache 基本操作实例
May 17 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP使用phpunit进行单元测试示例
Sep 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
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
PHP与MySQL交互使用详解
2006/10/09 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
PHP编程风格规范分享
2014/01/15 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
Python迭代用法实例教程
2014/09/08 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python多线程使用方法实例详解
2019/12/30 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
在Python中实现字典反转案例
2020/12/05 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
质检部职责
2013/12/28 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书