我必须在一个控制器中使用两个数据库。即使我用第二个参数TRUE加载第二个数据库以获得引用而不覆盖默认数据库,它也在替换默认数据库。加载第二个数据库时应该做什么。目前我正在加载如下。
$testDB = $this->load->database('preview',TRUE,FALSE);
将两个数据库的pconnect参数设置为false
$db['preview']['pconnect'] = FALSE;
在您的config/database.php 中
然后在连接到第二个数据库的模型上,像这样加载:
class Example_m extends CI_Model {
function __construct(){
$CI =& get_instance();
parent::__construct();
$this->db = $CI->load->database('preview',TRUE);
}
//这将确保工作正常或检查您的错误
//If you use group
//group name
$preview_DB = $this->load->database('preview',TRUE);
//another DB
$another_DB = $this->load->database('another',TRUE);
//if You use array
//create connection string
$db = array();
$db['hostname'] = "database_hostname";
$db['username'] = "database_username";
$db['password'] = "database_password";
$db['database'] = "database_name";
$db['dbdriver'] = 'mysql';
$db['pconnect'] = FALSE;
$DB = $this->load->database($db,TRUE);
我假设您已经在database.php
中进行了所需的配置
您可以这样加载您的第二个数据库:$testDB = $this->load->database('preview', TRUE);
并这样使用:$query = $testDB->query("SELECT * FROM TABLE");