我正在为我的项目使用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;
答案 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');