php - 如何在 codeigniter 中连接数据库多个服务器?

标签 php mysql postgresql codeigniter

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

}

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

最佳答案

很简单。就这 3 行:

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

关于php - 如何在 codeigniter 中连接数据库多个服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310887/

相关文章:

PHP vs Golang http 调用得到不同的结果

php - 公共(public)文件的 Laravel CORS 问题

mysql - Laravel 5 - 检索 blob 文件返回 TRUE 或 1

android - 将 MYSQL 转换为适用于 Android 的 SQLITE 数据库

php - MySQL插入特殊字符

php - 使用 Laravel 存储日期

mysql - SQL Group int 按组和按日期

sql - SUM(CASE...) 和 CASE WHEN...THENSUM(...) 的区别

sql - 如何使用复制命令在 postgres 中将数据从一个表复制到另一个表

ruby-on-rails - Activerecord 事务并发竞争条件问题