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');

相關文章
相關標籤/搜索