如何在代码点火器中连接数据库多个服务器


how to connect database multiple server in codeigniter?

我在本地服务器中构建项目,但文件数据库保存在另一台服务器中。 我尝试在配置数据库中编辑.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();
    }
}

我尝试这样的模型,但它不起作用

很容易。就这3行:

$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 连接到数据库