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

<?phpmysql

require_once 'Zend/Db.php';sql

$params = array ('host'     => '127.0.0.1',
                 'username' => 'malory',
                 'password' => '******',
                 'dbname'   => 'camelot');数据库

$db = Zend_Db::factory('PDO_MYSQL', $params);api

?>数组

 

连接数据库方法二(推荐):
将配置信息写在“.ini”结尾的配置文件中(固然你也能够在xml格式的文件中进行配置,这里介绍ini格式文件的配置),INI 格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具备专长。配置数据等级结构经过用点或者句号 (.)分离键值。一个节能够扩展或者经过在节的名称以后带一个冒号(:)和被继承的配置数据的节的名称来从另外一个节继承。以下面的config.iniapp

[general]
db.adapter=PDO_MYSQL
db.config.host=localhost
db.config.username=malory
db.config.password=******
db.config.dbname=camelotui

或者,在application.ini配置文件中设置MySQL数据库链接:spa

[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"xml

若是你当前的工做模块是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');

相关文章
相关标签/搜索