在PHP的CodeIgniter(CI)框架中,操作多个数据库是一个常见的需求。CodeIgniter 支持从配置文件中加载多个数据库组,并在运行时动态地切换它们。以下是如何在CodeIgniter中配置和操作多个数据库的基本步骤:
### 1. 配置数据库
首先,你需要在`application/config/database.php`配置文件中设置多个数据库组。例如,假设你有两个数据库:`default` 和 `second_db`。
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'your_username',
'password' => 'your_password',
'database' => 'default_db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['second_db'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'another_username',
'password' => 'another_password',
'database' => 'second_db',
// 其他设置与上面类似
);
### 2. 加载数据库
在你的控制器或模型中,你可以通过传递数据库组名作为参数来加载特定的数据库。
$this->load->database('second_db', TRUE); // 第二个参数为TRUE时,将返回数据库对象
如果你已经加载了`default`数据库,并且想要切换到`second_db`,你需要先关闭`default`数据库的连接(可选,取决于你的需求),然后加载`second_db`。
### 3. 使用数据库
一旦加载了数据库,你就可以像平常一样使用它了。
$query = $this->db->get('some_table'); // 假设some_table在second_db中
$result = $query->result_array();
print_r($result);
### 注意事项
- 确保在切换数据库之前关闭之前的数据库连接(如果需要的话),以避免潜在的问题。
- 你可以根据需要加载和卸载不同的数据库组。
- 在生产环境中,请确保关闭`db_debug`以提高性能和安全性。
以上就是在CodeIgniter中操作多个数据库的基本方法。