2014-10-29 37 views
0

我为我的项目使用了3个数据库。我试图获取配置文件中定义的不同数据库的名称。如何从config.php获取数据库名称

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

这是配置文件代码。我想获得三个数据库的名称,如'默认''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; 
+0

首先,您使用的是哪个框架? – Albin 2014-10-29 10:33:06

+0

Codeigniter框架.. – 2014-10-29 10:37:59

回答

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()); 

希望这会有所帮助。

+0

这不完全是我想...但它帮助了很多....感谢队友... @Craig – 2014-10-30 07:02:53

相关问题