在 CodeIgniter 中,如何从单独的文件而不是默认的 config\database.php 加载数据库?
假设在库下我有一个名为 db_configs 的文件夹。在每个数据库中,详细信息将存储在单独的文件中,例如。 DB_01.php、DB_02.php等
谢谢,
最佳答案
使用 CI 中内置的功能要容易得多,其中可以在一个文件中定义多个数据库连接。否则就是重新发明轮子。
加载数据库时可以选择任何给定的连接集(在 database.php 中定义)。例如,给定 DB_01 和 DB_02,您将加载它们
$this->load->database('DB_01');
或
$this->load->database('DB_02');
如果你同时需要两者,你可以这样做
$db1 = $this->load->database('DB_01', TRUE);
$db2 = $this->load->database('DB_02', TRUE);
但是如果您必须有单独的文件,则有几种不同的方法。 也许最简单的方法是使用助手
application/helpers/db2_helper.php
function db2Config()
{
return array(
'dsn' => '',
'hostname' => 'localhost',
... etc.
);
}
在一些 Controller 中
$this->load->helper('db2');
$db2_settings = db2Config();
$this->load->database($db2_settings);
也可以像这样使用 Config 类来完成。
application/config/db2.php
<?php
$config['dsn'] = '';
$config['hostname'] = 'localhost';
$config['username'] = 'IAmAUser';
$config['password'] = 'mypassword';
$config['database'] = 'theDB';
$config['dbdriver'] = 'mysqli';
$config['dbprefix'] = '';
$config['pconnect'] = TRUE;
...
在一些 Controller 中
$this->config->load('db2', TRUE);
$db2_config = $this->config->item('db2');
$this->load->database($db2_config);
关于php - Codeigniter 加载不同的数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029798/