我有几个特定于国家/地区的数据库,除数据库名称外,它们都具有相同的连接属性。
我希望能够从控制器中设置数据库名称参数,然后加载数据库配置,而不是为database.php中的每个国家/地区添加数据库配置。
类似的东西:
$db->set_item('database', 'UK_database');
或
$config->sap->database = 'UK_database';
然后做:
$sap = $this->load->database('sap', TRUE);
这可能吗?
答案 0 :(得分:0)
首先,我认为您有一些可能需要首先处理的结构性问题。例如,如果它们是国家特定的数据库,为什么不只是将它们作为前缀并将表放在同一个数据库中?
接下来,我相信你只是想变得更加干燥。那么在你的database.php
配置中,为什么不复制呢?
$database = array(
'user' => '',
'pass' => '',
...
);
$db['dbname1'] = $database;
$db['database'] = 'Some other database';
$db['dbname2'] = $database;
$db['database'] = 'Another database';
至少你会让你的证书干涸,并遵循使用多个数据库的CI惯例。
例如,如果您需要更新一个数据库中的记录。
$db = $this->load->database('some_selection_process', TRUE);
$db->do_some->db_related->stuff();