zend framework 配置连接数据库
Zend_Db_Adapter是zend frmaeword的数据库抽象层api。基于pdo, 你可以使用Zend_Db_Adapter连接和处理多种 数据库,包括:microsoft SQL Server、MySql、SQLite等等。
链接数据库方法一:
要针对不同的数据库实例化一个 Zend_Db_Adapter 对象, 需要
将adapter的名字和描述数据库连接的参数数组作为参数,静态调用
Zend_Db::factory()方法。例如,连接到一个数据库名称为
“camelot”,用户名为“malory”的本地mysql数据库,可以进行如下操作:
<?php
require_once 'Zend/Db.php';
$params = array
('host'
=> '127.0.0.1',
'username' => 'malory',
'password' => '******',
'dbname' =>
'camelot');$db = Zend_Db::factory('PDO_MYSQL', $params);
?>
链接数据库方法二(推荐):
将配置信息写在“.ini”结尾的配置文件中(当然你也可以在xml格式的文件中进行配置,这里介绍ini格式文件的配置),INI
格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长。配置数据等级结构通过用点或者句号
(.)分离键值。一个节可以扩展或者通过在节的名称之后带一个冒号(:)和被继承的配置数据的节的名称来从另一个节继承。如下面的config.ini
[general]
db.adapter=PDO_MYSQL
db.config.host=localhost
db.config.username=malory
db.config.password=******
db.config.dbname=camelot
或者,在application.ini配置文件中设置MySQL数据库连接:
[production]
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "root"
resources.db.params.dbname = "guestbook"
如果你当前的工作模块是development,则添加到[development : production]下
之后可入口文件index.php调用如下语句,指定数据库Adapter来建立数据库链接:
$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);
这里的Zend_Config_Ini类,允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的 INI
格式存储和读取配置数据。
$dbAdapter=Zend_Db::factory($config->general->db->
adapter,$config->general->db->config->toArray());这一句创建数据库适配
器,里面的两个参数分表表示:$config->general->db->adapter取出的值就是上面config.ini文件
配置的PDO_MYSQL,而$config->general->db->config->toArray()这一句则将
host,username,password,dbname作为数组的形式。
Zend_Db_Table::setDefaultAdapter($dbAdapter);这一句设置表的默认适配器,除非你特别指定,否则所有的zend_db_table类实例都会使用默认adapter。
Zend_Registry::set('dbAdapter',$dbAdapter);
则是在注册Adapter,Zend_Registry,对象注册表(或称对象仓库)是一个用于在整个应用空间(application
space)内存储对象和值的容器。通过把对象存储在其中,我们可以在整个项目的任何地方使用同一个对象。这种机制相当于一种全局存储.
我们可以通过Zend_Registry类的静态方法来使用对象注册表,另外,由于该类是一个数组对象,你可以使用数组形式来访问其中的类方法,例如:$value
= Zend_Registry::get('dbAdapter');
zend framework 配置连接数据库的更多相关文章
- Zend Framework 框架搭建
通过手工方法搭建Zend Framework的MVC框架结构.首先看一下zend framework mvc的目录结构 1. 在根目录下面创建 public ,并在 public 下创建 index. ...
- zend framework多模块配置
上次接触zend framework已经很久远了,10年的事情了.最近在做一个项目,时间不紧,就又把ZF拿出来折腾.而我发现以前做ZF的记忆已经在我脑中如梦幻泡影,消失无踪,为了配置多模块还又去查了资 ...
- zend framework 1.10项目配置与经典hello world
准备工作 前置条件:PHP>=5.14,Apache开启mod_rewrite支持,开启php的pdo扩展. Zend Framework 要求 PHP版本不低于5.1.4,但强烈建议使用 5. ...
- zend framework多模块多Layout配置
转自: http://blog.csdn.net/a82168506/article/details/10228011 上次接触zend framework已经很久远了,10年的事情了.最近在做一个项 ...
- Zend Framework Module之多模块配置
摘要:该文将为大家简单介绍一下如何使用zend framework创建模块化的应用程序. zend framework对多模块的支持是很好的,但是可能是由于功能太过强大的缘故,部署起来并不是很容易.许 ...
- Zend Framework(一) windows8.1下配置zend framework1.12
windows8.1下配置zend framework1.12配置步骤: 1. 下载 zend framework1.12库 2. 创建zend frameworkproject 2 ...
- Zend Framework 1 - Quick Start
创建 Zend 项目 要创建 Zend 项目,首先要下载并解压 Zend Framework. 安装 Zend Framework 下载最新的 Zend Framework 1.12.20 源码包,( ...
- Ubuntu14.0下安装Zend Framework 2
Ubuntu14.0下安装Zend Framework 2为了安装这个东西,忙活了快一天了,参考中文博客一直没有安装成功,有些博客的时间也是已经很早了,后来google看英文版的才安装成功,这里记录一 ...
- 搭建PHP官方框架zend framework 2(LINUX)
在五花八门的语言里,PHP作为我第一个觉得欣赏的理由,就是它的简单和快捷,因为它封装了许多的常用函数.PHP作为网站中一种算作比较流行的语言,也产生各种优秀的框架.我所接触过的有zend framew ...
随机推荐
- 关于c中的inline
在c中,为了解决一些频繁调用的小函数大量消耗栈空间或是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数.栈空间就是指放置程式的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的 ...
- 转:Emmet 学习之路 - 2 基本语法
http://blog.csdn.net/jizhongchun/article/details/8472755 导读:Emmet的基本语法.学习步骤是:1 基本语法: 2 html命令: 3 css ...
- English--Computer System
A: Hey, Bill, Can you tell what's wrong with my computer? I can't move the mouse, I can's user the k ...
- 扩展欧几里得 POJ 1061
感觉这道题目的数据好水啊...我的代码我都觉得姿势特别奇怪...竟然还过了... 好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了 就说一下碰到的问题 ...
- ASP.NET中的Response
Response.BufferOutput=true.false 是否设置缓存 Response.Write("") 输出字符串 Response.IsClientConne ...
- zf-启动项目报错Server 127.0.0.1 has no instance named dlx 解决办法
由于百度出来的看不明白,于是我就在群里问,吴善如经理说:你这个问题我上次给李宽看过,用端口连,把instance去掉 然后我去掉之后 项目过程能够成功运行了,原来是这样
- tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?
用wireshark 抓包,看看tcp 断开连接的过程. 以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问. [求助]书上和网上的资料 ...
- javascript 用call来继承实例属性
xxx.call(thisObj, arg1,...)的调用可以改变当前函数的执行环境为传入的thisObj对象.利用这一点可以实现继承————当前的对象获得XXX的属性和方法. 例子: functi ...
- ZOJ3944People Counting<暴力/枚举>
题意:输入一张照片,给出人物的特征,判断有多少个人. .O. /|\ (.) 思路:按照3*3的图统计,只要有一个点符合就加1 #include<cstdio> #include<i ...
- 关于Eclipse无法生成class文件的问题
今天调试东西的时候发现怎么都无法build 遂用Eclipse里的clean功能 打算重新编译一下结果所有的class文件全部消失了 重新打包发包也不行 经过查找后得到方法:把properties属性 ...