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 ...
随机推荐
- JavaScript的异步机制
我们经常说JS是单线程的,比如node.js研讨会上大家都说JS的特色之一是单线程的,这样使JS更简单明了,可是大家真的理解所谓JS的单线程机制吗?单线程时,基于事件的异步机制又该当如何 1 先看下两 ...
- android 去掉listview之间的黑线
方法1:listView.setDividerHeight(0);方法2:this.getListView().setDivider(null);方法3:android:divider="@ ...
- Android Studio 简单介绍和使用问题小结
原文 http://www.cnphp6.com/archives/59264 主题 Gradle Android Studio Android 随着android 5.0 的发布,android ...
- CentOS 6.3下NTP服务安装和配置
测试环境: NTPserver 192.168.1.252 NTPclient 192.168.1.251 准备工作: 关闭selinux: vi /etc/selinux/config SELINU ...
- hadoop2.2 datanode 启动不了
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block po ...
- Qt5:窗口背景色的设置
在Qt中,设置窗口背景色有多种方法,如通过setStyleSheet 和 调色板 setPalette 等 下面是setPalette 方法 QPalette pale = palette(); ...
- mysql Explain 性能分析关键字
EXPLAIN 输出格式select_typetabletypepossible_keyskeykey_lenrowsExtra MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT ...
- Hadoop的初步理解
一.整体思维导图 二.HDFS(Hadoop分布式文件系统) 说明 NameNode:保存整个文件系统的目录信息.文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode ...
- Lambda应用设计模式 [转载]
Lambda应用设计模式 前言 在使用 Lambda 表达式时,我们常会碰到一些典型的应用场景,而从常用场景中抽取出来的应用方式可以描述为应用模式.这些模式可能不全是新的模式,有的参考自 Java ...
- 安卓图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图
前面几篇博客中都是调用ChartFactory.get***Intent()方法,本节讲的内容调用ChartFactory.get***View()方法,这个方法调用的结果可以嵌入到任何一个Activ ...