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 配置连接数据库的更多相关文章

  1. Zend Framework 框架搭建

    通过手工方法搭建Zend Framework的MVC框架结构.首先看一下zend framework mvc的目录结构 1. 在根目录下面创建 public ,并在 public 下创建 index. ...

  2. zend framework多模块配置

    上次接触zend framework已经很久远了,10年的事情了.最近在做一个项目,时间不紧,就又把ZF拿出来折腾.而我发现以前做ZF的记忆已经在我脑中如梦幻泡影,消失无踪,为了配置多模块还又去查了资 ...

  3. zend framework 1.10项目配置与经典hello world

    准备工作 前置条件:PHP>=5.14,Apache开启mod_rewrite支持,开启php的pdo扩展. Zend Framework 要求 PHP版本不低于5.1.4,但强烈建议使用 5. ...

  4. zend framework多模块多Layout配置

    转自: http://blog.csdn.net/a82168506/article/details/10228011 上次接触zend framework已经很久远了,10年的事情了.最近在做一个项 ...

  5. Zend Framework Module之多模块配置

    摘要:该文将为大家简单介绍一下如何使用zend framework创建模块化的应用程序. zend framework对多模块的支持是很好的,但是可能是由于功能太过强大的缘故,部署起来并不是很容易.许 ...

  6. Zend Framework(一) windows8.1下配置zend framework1.12

    windows8.1下配置zend framework1.12配置步骤: 1.     下载 zend framework1.12库 2.      创建zend frameworkproject 2 ...

  7. Zend Framework 1 - Quick Start

    创建 Zend 项目 要创建 Zend 项目,首先要下载并解压 Zend Framework. 安装 Zend Framework 下载最新的 Zend Framework 1.12.20 源码包,( ...

  8. Ubuntu14.0下安装Zend Framework 2

    Ubuntu14.0下安装Zend Framework 2为了安装这个东西,忙活了快一天了,参考中文博客一直没有安装成功,有些博客的时间也是已经很早了,后来google看英文版的才安装成功,这里记录一 ...

  9. 搭建PHP官方框架zend framework 2(LINUX)

    在五花八门的语言里,PHP作为我第一个觉得欣赏的理由,就是它的简单和快捷,因为它封装了许多的常用函数.PHP作为网站中一种算作比较流行的语言,也产生各种优秀的框架.我所接触过的有zend framew ...

随机推荐

  1. STL笔记之set

    //---------------------------------------------------------// set综述//------------------------------- ...

  2. mysql date range

    http://stackoverflow.com/questions/9935690/mysql-datetime-range-query-issue " ";

  3. android的m、mm、mmm编译命令的使用

    android的m.mm.mmm编译命令的使用   android源码目录下的build/envsetup.sh文件,描述编译的命令 - m:       Makes from the top of ...

  4. 【贪心】时空定位I

    [贪心]时空定位I 题目描述 张 琪曼已经确定了李旭琳在一个长为20千米,宽为2千米的空间,她要在横中心线上放置半径为Ri的定位装置,每个定位装置的效果都会让以它为中心的半径为实 数Ri(0<R ...

  5. 整理书本(book)

    整理书本(book) 题目描述 小A想把他满屋子的书整理一下.书本分成若干堆.每一堆的书本都有质量w和价值V.小A的任务是将所有书合成一堆.因为小A认为合并i,j两堆的书所需要的力为w[i]-v[i] ...

  6. linux 备份系统

    切换到root用户 切换到根目录 tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz -- ...

  7. VIEWCONTROLLER的启动流程

    转载自:http://sunnyyoung.net/post/ios/2015-04-22-viewcontrollerde-qi-dong-liu-cheng-yu-jie-xi VIEWCONTR ...

  8. Android开发之InstanceState详解(转)---利用其保存Activity状态

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...

  9. 国内apk加固的破解方法

    国内apk加固的破解方法 By Bob Pan 国内的apk加固技术都使用了将原有的dex隐藏, 在运行时解压, 并且通过修改app的类加载器的方式实现加固. 参考: AndoridAPK反逆向解决方 ...

  10. msf常用命令

    msf > search -r great -t exploits search命令查找rank为great的exploit msf > setg RHOST 192.168.1.102 ...