代码点火器 - 检查是否已配置数据库连接


Codeigniter - Check if a database connection has been configured

我已将代码点火器配置为使用多个数据库。对于某些客户,我们需要查询其他数据库,因此这是一个问题:

if( isConfigured(database) )
    foo();

但是,无论数据库是否在 databases.php 中配置,我所做的尝试都给出了相同的结果,要么抛出错误。

我尝试了以下方法:

if( $this->load->database('optional') == FALSE )

这引发了错误You have specified an invalid database connection group

try( $this->load->database('optional') )
{
    foo();
}
catch(Exception $e)
{
     doNothing();
}

这引发了同样的错误

文档指出$this->load->database('optional', TRUE)返回连接 ID,但我无法检查这一点,因为在返回值之前代码错误。

我希望能够检查是否已设置属性,例如 $this->config->item('db')['optional']但这在很大程度上是猜测,以确定如何访问正确的属性

我还研究了dbutil类,但这仅适用于已经建立连接的数据库。

$db['db1']['hostname'] = 'localhost';
$db['db1']['username'] = 'root';
$db['db1']['password'] = '';
$db['db1']['database'] = 'mydatabase';
$db['db1']['dbdriver'] = 'mysql';
$db['db1']['dbprefix'] = '';
$this->load->database('db1',TRUE);