CodeIgniter框架同時連接多個數據庫

jopen 10年前發布 | 69K 次閱讀 CodeIgniter Web框架

一 、配置數據庫

1. 描述:CodeIginter有一個配置文件讓你存放數據庫連接值(username:用戶名,password:密碼,database name:數據庫名,等等......)    
2. 文件位置:該配置文件位于application/config/database.php
3. 注意事項:除默認數據庫外其他的數據庫的pconnect鍵名對應的鍵值為FALSE
4. 示例:
    $active_group = 'default';
    $active_record = TRUE;

    $db['default']['hostname'] = 'localhost';    //數據庫的主機名,通常位于本機,可以表示為“localhost”
    $db['default']['username'] = 'root';    //需要連接到數據庫的用戶名
    $db['default']['password'] = '123456';    //登陸數據庫的密碼
    $db['default']['database'] = 'db1';    //你需要連接的數據庫名
    $db['default']['dbdriver'] = 'mysql';    //數據庫類型。例如:mysql,postgres,odbc等。必須以小寫字母
    $db['default']['dbprefix'] = '';     //當運行Active Record查詢時數據表的前綴,它允許在一個數據庫連接上安裝多個CodeIgniter程序
    $db['default']['pconnect'] = TRUE;    // TRUE/FALSE(boolean)-使用持續鏈接
    $db['default']['db_debug'] = TRUE;    //TRUE/FALSE(boolean)-顯示數據庫錯誤信息
    $db['default']['cache_on'] = FALSE;    //TRUE/FALSE(boolean)-數據庫查詢緩存是否開啟。詳情見CodeIgniter數據庫緩存類
    $db['default']['cachedir'] = '';    //數 據庫查詢緩存目錄所在服務器 絕對路徑
    $db['default']['char_set'] = 'utf8';    //與數據庫通信時所使用的字符集
    $db['default']['dbcollat'] = 'utf8_general_ci';    //與數據庫通信時所使用的字符規則
    $db['default']['swap_pre'] = '';    //替換默認的dbprefix表前綴,該設置項對于分別式應用是非常有用的,你可以查詢中使用由最終用戶定制的表前綴
    $db['default']['autoinit'] = TRUE;    //當數據庫(database library)被載入的時候是否需要自動連接數據庫,如果設置為FALSE, 將在首次查詢前進行連接
    $db['default']['stricton'] = FALSE;    //TRUE/FALSE(boolean)-是否強制使用“Strict Mode”鏈接,在開發程序時,使用strict SQL是一個好習慣

    $db['db2']['hostname'] = 'localhost';
    $db['db2']['username'] = 'root';
    $db['db2']['password'] = 123456';
    $db['db2']['database'] = 'db2';
    $db['db2']['dbdriver'] = 'mysql';
    $db['db2']['dbprefix'] = '';
    $db['db2']['pconnect'] = FALSE;    //特別注意哦
    $db['db2']['db_debug'] = TRUE;
    $db['db2']['cache_on'] = FALSE;
    $db['db2']['cachedir'] = '';
    $db['db2']['char_set'] = 'utf8';
    $db['db2']['dbcollat'] = 'utf8_general_ci';
    $db['db2']['swap_pre'] = '';
    $db['db2']['autoinit'] = TRUE;
    $db['db2']['stricton'] = FALSE;

二、在model中連接數據庫

1. 示例:
class test_model extends CI_Model{
    var $db_connect1;
    var $db_connect2;
    public function __construct(){
        parent::__construct();
        $this->db_connect1 = $this->load->database('default', TRUE);
        $this->db_connect2= $this->load->database ('db2', TRUE);
    }
    public function get_db1($date){
        $query = $this->db_connect1->query("SELECT * FROM db1 where date='$date'");
        return $query->row_array();
    }
    public function get_db2($date){
        $query = $this->db_connect2->query("SELECT * FROM db2 where date='$date'");
        return $query->row_array();
    }
}
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!