用Zend框架的模式查询数据库

说道这个知识点,想一下都有点心酸,我可是把这个知识点的视屏看看整整六遍才算把基本的流程以及要点搞明白,看着是用框架方便了许多,但如果是搞不明白,他就会把你搞死,不诉苦了,还是先说一下具体的操作流程吧。

首先,既然要去查询数据库,而且是用框架的方式,就必须改掉那种面向过程,单层结构的方式,应该充分利用mvc的思想,就是说,在模型,视图,还有控制器,让他们分工明确,,首先要建立一个数据库的表类,那必然就应该放在modle里面了,注意的就是既然要使用框架里面的方法,那么就必须要继承该方法类,该方法类就是Zend_Db_Table,关于他的用法具体查手册,这样的话,你需要做的就是在这个子类的里面去定义数据库表名和主键名称,别的地方不要去管。

然后在程序配置文件application.ini配置好数据库的相关配置,主要有:数据库的接口类型,主机名(不是虚拟主机),数据库用户名,数据库密码,数据库名,这几项数据,要注意的就是在打开这个配置文件之前,9行之后的配置为默认的配置,去掉就行,不然会有影响,如下面我的添加:

[mysql]

db.adapter=PDO_MYSQL

db.params.host=localhost

db.params.username=root

db.params.password=toor

db.params.dbname=empmanage

如果做完了上面的步骤,不要以为就已经结束了,还没有配置适配器呢,就是view文件夹俩面的Bootstrap.php文件,加上下面的一段语句:

function __construct($app){

parent::__construct($app);

$url=constant("APPLICATION_PATH") . DIRECTORY_SEPARATOR . ‘configs‘ . DIRECTORY_SEPARATOR . ‘application.ini‘;

$dbconfig = new Zend_Config_Ini($url,"mysql");

$db=Zend_Db::factory($dbconfig->db);

$db->query(‘SET NAMES UTF8‘);

Zend_Db_Table::setDefaultAdapter($db);

}

这就是一个初始化的操作,如果说这个函数下面还有东西,就删掉,不要问为什么。

做到这里,英爱就差最后一步了,这只是测试那么就要显示数据库的信息,在indexAction方法里面加入下面的语句(名称的含义要一定理解):

$messageModel=new Message();

$res=$messageModel->fetchAll()->toArray();

echo "<pre>";

print_r($res);

echo "</pre>";

第一句是建立一个Message类的对象,这是后后面会有很多的东西要做的。。。。。

然后你就利用fetchAll()方法就行查询,返回结果集。

最后格式化输出就OK了。

关于输出到哪里,当然要是在view那里了,不然就体现不出分层的思想来了。

在view的index.phtml文件:

<?php foreach($this->res as $message) { ?>

<?=$message[‘id‘]?>----<?=$message[‘name‘]?>

<?php }?>

如果按照以上的步骤进行,有相当大的几率会出现问题,为了查找问题更加方便,建议添加错误日志。

时间: 2024-08-26 12:25:56

用Zend框架的模式查询数据库的相关文章

基于“MVC”框架集设计模式,利用 DBHelper实现查询数据库功能

利用 DBHelper实现查询数据库功能 (1)连接好mysql数据库,如果无法连接,先打开mysql服务.新建一个数据库,名字为text,在新建一个数据表,名字为user,添加三个字段:用户ID.用户名和密码. (2)新建 web 项目UserManager,根据MVC模型的设计,建立四个包:beans.DAO.DBHelper.servlet.将所需要的DBHelper导入新建Web项目的DBHelper中,注意要使数据库名字保持一致.将mysql-connector-java-5.1.24

.net的session详解 存储模式 存到数据库中 使用范围与大小限制 生命周期

Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个Key来判断用户是否登录,如果登录的话用户名又是多少. 我们知 道,Session对于每一个客户端(或者说浏览器实例)是"人手一份",用户首次与Web服务器建 立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字符组成的随机字符串.用户每次提

从零开始编写自己的C#框架(9)——数据库设计与创建

对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常......当然不同的公司与项目要求不同,初学者要学会适应不同的项目开发要求,使用本框架开发时,必须严格按照本章节的要求来设计数据库,不然可能会产生不可控的异常. 从零开始编写自己的C#框架 数据库设计规范   文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: C#框架 当前版本

十三、EnterpriseFrameWork框架核心类库之数据库操作(多数据库事务处理)

本章介绍框架中封装的数据库操作的一些功能,在实现的过程中费了不少心思,针对不同数据库的操作(SQLServer.Oracle.DB2)这方面还是比较简单的,用工厂模式就能很好解决,反而是在多数据库同时操作方面走了不少弯路:现在从以下几个方面进行说明: 一.不同数据库操作 此处用到了工厂模式来实现不同数据库操作,看下图 AbstractDatabase是一个抽象类,定义了所有对数据库的操作抽象方法,包括执行一个SQL语句.执行存储过程.事务操作等 [Serializable] public abs

使用FMDB框架来加载数据库

1.打开数据库 先要获取沙盒的数据库文件名,并创建数据库文件名,定数据库: @property (nonatomic, strong) FMDatabase *db; // 0.获得沙盒中的数据库文件名 NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"

到底如何区分什么是架构、框架、模式和平台 ?

区分什么是架构.框架.模式和平台,一直都感觉这几个词过于抽象和模糊,今天大家来说说到底什么是架构.框架.模式和平台? 收集了的一些来自网上各自的定义和区分如下: 来自 冬眠的蛤蟆 概念: 设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单.那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类.对象和接口之间的

SQL Server查询数据库空间分配情况、数据库备份信息

查询数据库空间分配情况: 1 use master 2 go 3 create procedure dbo.proc_getdbspaceused 4 as 5 begin 6 set nocount on 7 create table #dbsize( 8 database_id int 9 ,database_name nvarchar(1024) 10 ,size_kb bigint 11 ,space_available_kb bigint 12 ,reserved_kb bigint

SSM框架整合(实现从数据库到页面展示)

SSM框架整合(实现从数据库到页面展示) 首先创建一个spring-web项目,然后需要配置环境dtd文件的引入,环境配置,jar包引入. 首先让我来看一下ssm的基本项目配件.(代码实现) 1.首先编写web.xml文件. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

python查询数据库返回数据

python查询数据库返回数据主要运用到flask框架,pymysql 和 json‘插件’ #!/usr/bin/python # -*- coding: UTF-8 -*- import pymysql import flask,json server=flask.Flask(__name__) @server.route('/index',methods=['get','post']) def create(): db = pymysql.connect("localhost",