簡體   English   中英

Codeigniter中如何連接數據庫多台服務器?

[英]how to connect database multiple server in codeigniter?

我在本地服務器上構建項目,但文件數據庫保存在另一台服務器上。 我嘗試像這樣在config database.php中進行編輯

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


$db['database_two']['hostname'] = 'xxx.xxx.xx.xx';
$db['database_two']['username'] = 'vtis';
$db['database_two']['password'] = '';
$db['database_two']['database'] = 'vtis';
$db['database_two']['dbdriver'] = 'postgre';
$db['database_two']['dbprefix'] = '';
$db['database_two']['pconnect'] = TRUE;
$db['database_two']['db_debug'] = TRUE;
$db['database_two']['cache_on'] = FALSE;
$db['database_two']['cachedir'] = '';
$db['database_two']['char_set'] = 'utf8';
$db['database_two']['dbcollat'] = 'utf8_general_ci';
$db['database_two']['swap_pre'] = '';
$db['database_two']['autoinit'] = TRUE;
$db['database_two']['stricton'] = FALSE;
$db['database_two']['port'] = 5432;

但是之后我不知道下一步。 您能否一步一步告訴我如何使用Codeigniter連接另一台服務器中的數據庫?

munit_list.php

*/
class Munit_list extends CI_Model
{

    private $tbl_unit_list = 'unit_list';
    function __construct()
    {
        parent::__construct();
        $CI=&get_instance();
        $CI->database_two = $this->load->database('database_two', TRUE);
        $this->database_two =& $CI->database_two; 
    }

    function get_all_unit_list()
    {
        $this->database_two->order_by('unit_id','desc');
        $data = $this->database_two->get($this->tbl_unit_list);
        return $data->result();
    }

}

我嘗試這樣的模型,但無法正常工作

這很容易。 僅這三行:

$CI=&get_instance;
$CI->database_two = $this->load->database('database_two', TRUE);
$this->database_two =& $CI->database_two; 

在構造函數中的模型中,只需添加要使用的數據庫即可。 您可以添加任意多個,只要它們在數據庫文件中定義即可。

Munit_list類擴展了CI_Model {

function __construct() {
    parent::__construct();
    $this->database_two= $this->load->database('database_two', TRUE); 
}

$ this-> database_two(可以是您要輸入的任何名稱);
$ this-> load-> database('database_two',TRUE); “ database_two”是您在數據庫文件上定義的名稱,並且TRUE參數是函數返回數據庫對象的名稱。

然后您可以像這樣使用它:

function get_all_units_list(){
    $this->database_two->select("*");
    ....
    ....
}

CodeIgniter中的更多信息連接到數據庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM