求教,CI多数据库连接问题
本人初学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);
}
}
}
求指点
你在一个action里call另一个action的用法是出错的直接原因。建议你在model里面做这些查询,查完一个库在换一个库,最后汇总给controller。
希望对你有帮助。 http://ellislab.com/codeigniter/user-guide/database/connecting.html
里面有说同时使用不同的库的情形:
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
$DB1->query();
$DB1->result();
$DB2->query();
$DB2->result();
页:
[1]