php中CI操作多个数据库的代码


在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中操作多个数据库的基本方法。