2014-10-29 87 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

相關問題