用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3053|回复: 2
收起左侧

求教,CI多数据库连接问题

[复制链接]
发表于 2013-11-7 17:26:47 | 显示全部楼层 |阅读模式
本人初学php,刚接触CI,想要同时连接SQL server 和Mysql 数据库,本人测试代码如下:
config/database.php配置如下:
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'BB';
$db['default']['username'] = 'dev';
$db['default']['password'] = 'dev123';
$db['default']['database'] = 'dev';
$db['default']['dbdriver'] = 'odbc';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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;

$active_group = 'test';
$active_record = TRUE;
$db['test']['hostname'] = 'localhost';
$db['test']['username'] = 'root';
$db['test']['password'] = 'root';
$db['test']['database'] = 'studentdata';
$db['test']['dbdriver'] = 'mysql';
$db['test']['dbprefix'] = '';
$db['test']['pconnect'] = FALSE;
$db['test']['db_debug'] = TRUE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = '';
$db['test']['char_set'] = 'utf8';
$db['test']['dbcollat'] = 'utf8_general_ci';
$db['test']['swap_pre'] = '';
$db['test']['autoinit'] = TRUE;
$db['test']['stricton'] = FALSE;
单独运行每个连接都可以执行,同时连接第二个出错,请教如何配置,网上很多代码试过都不行
测试代码:
<?php
class Test extends CI_Controller{
        function __construct(){
                parent::__construct();
               
                $this->load->helper('form','url');
        }
        function index(){
                $this->load->database('default');
                $sql = "SELECT * from person_info";
                $query = $this->db->query($sql);
                $result = $query->result_array();
                foreach($result as $value){
                var_dump($value);
                }
                $this->db->close();
                $this->get_mysql();

        }
        public function get_mysql(){
                $this->load->database('test');
        $sql = "SELECT * from usr_detail";
                $query = $this->db->query($sql);
                $result = $query->result_array();
                foreach($result as $value){
                var_dump($value);
                }
        }
}
求指点

发表于 2013-11-8 10:38:15 | 显示全部楼层
你在一个action里call另一个action的用法是出错的直接原因。建议你在model里面做这些查询,查完一个库在换一个库,最后汇总给controller。
希望对你有帮助。
发表于 2013-11-8 10:54:40 | 显示全部楼层
http://ellislab.com/codeigniter/ ... ase/connecting.html

里面有说同时使用不同的库的情形:

PHP复制代码
 
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
 
 
$DB1->query();
$DB1->result();
 
$DB2->query();
$DB2->result();
 
复制代码

本版积分规则