如何从config.php获取数据库名称

时间:2014-10-29 10:26:11

标签: php mysql codeigniter

我正在为我的项目使用3个数据库。我正在尝试获取配置文件中定义的不同数据库的名称。

是否可以在控制器中获取数据库的名称?

这是配置文件代码。我想得到三个数据库的名称,例如'default''database2''database3'...
我怎样才能在控制器中得到它?

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

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'acp_demo';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$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;


$db['database2']['hostname'] = 'localhost';
$db['database2']['username'] = 'root';
$db['database2']['password'] = '';
$db['database2']['database'] = 'acp_demo1';
$db['database2']['dbdriver'] = 'mysql';
$db['database2']['dbprefix'] = '';
$db['database2']['pconnect'] = TRUE;
$db['database2']['db_debug'] = TRUE;
$db['database2']['cache_on'] = FALSE;
$db['database2']['cachedir'] = '';
$db['database2']['char_set'] = 'utf8';
$db['database2']['dbcollat'] = 'utf8_general_ci';
$db['database2']['swap_pre'] = '';
$db['database2']['autoinit'] = TRUE;
$db['database2']['stricton'] = FALSE;


$db['database3']['hostname'] = 'localhost';
$db['database3']['username'] = 'root';
$db['database3']['password'] = '';
$db['database3']['database'] = 'acp';
$db['database3']['dbdriver'] = 'mysql';
$db['database3']['dbprefix'] = '';
$db['database3']['pconnect'] = TRUE;
$db['database3']['db_debug'] = TRUE;
$db['database3']['cache_on'] = FALSE;
$db['database3']['cachedir'] = '';
$db['database3']['char_set'] = 'utf8';
$db['database3']['dbcollat'] = 'utf8_general_ci';
$db['database3']['swap_pre'] = '';
$db['database3']['autoinit'] = TRUE;
$db['database3']['stricton'] = FALSE; 

2 个答案:

答案 0 :(得分:0)

在对代码进行一些挖掘之后,我已经提出了这个函数(我在一个帮助文件中测试过它),它将返回数据库组列表,作为一个数组。它可能不是实现这一目标的最佳方式,但它确实有效。

function get_db_groups()
{
    $return = array();

    // Found this in ./system/database/DB.php
    // Is the config file in the environment folder?
    if ( ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/database.php')
        && ! file_exists($file_path = APPPATH.'config/database.php'))
    {
        show_error('The configuration file database.php does not exist.');
    }

    include($file_path);

    // Now we can access the $db
    foreach ($db as $key => $val)
    {
        $return[] = $key;
    }

    return $return;

}

然后,我可以得到这样的名字;

print_r(get_db_groups());

希望这有帮助。

答案 1 :(得分:0)

您可以获取配置项 https://ellislab.com/codeigniter/user-guide/libraries/config.html

$这 - > config->项目( 'DB');

相关问题