在get\u示例期间,codeigniter上的多个数据库在自定义库上未按预期工作

eufgjt7s  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(187)

ff是配置文件上的数据库设置

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '#########';
$db['default']['database'] = 'fault_analytics';
$db['default']['dbdriver'] = 'mysql';
...

$db['SiteDB']['hostname'] = 'localhost';
$db['SiteDB']['username'] = 'root';
$db['SiteDB']['password'] = '#########';
$db['SiteDB']['database'] = 'smartSiteDB';
$db['SiteDB']['dbdriver'] = 'mysql';
...

我的自定义jcm\u acl.php构造方法:

function __construct() {
    $this->ci =& get_instance();
    $this->ci->load->helper('url');
    $this->ci->load->library('session');
    $this->ci->load->helper('string');
    $this->ci->load->config('jcm_acl');
    $this->ci->load->model('jcm_acl_model', 'acl');

    $this->tables = $this->ci->config->item('tables');
    $this->default_error_page = $this->ci->config->item('default_error_page');
    $this->use_default_error_page = $this->ci->config->item('use_default_error_page');
 }

我运行了一些调试查询来检查 get_instance() 在我的自定义库上 __construct() 方法。ff是我的调试查询:

vdebug($this->jcm_acl->ci->db->database);
vdebug($this->jcm_acl->ci->db->list_tables());
vdebug($this->jcm_acl->ci->db->get('users'));
die();

以下是调试查询的结果:



请注意 get() 方法,它与第一个调试查询显示的数据库名称不同。这是怎么发生的。
只有当我访问同时加载第二个数据库的页面时,才会发生这种情况。在我没有加载第二个数据库的其他页面上,它工作得非常好。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题