在控制器中设置数据库参数 - codeigniter

时间:2013-07-16 12:01:16

标签: codeigniter

我有几个特定于国家/地区的数据库,除数据库名称外,它们都具有相同的连接属性。

我希望能够从控制器中设置数据库名称参数,然后加载数据库配置,而不是为database.php中的每个国家/地区添加数据库配置。

类似的东西:

$db->set_item('database', 'UK_database');

$config->sap->database = 'UK_database';

然后做:

$sap = $this->load->database('sap', TRUE);

这可能吗?

1 个答案:

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