📅  最后修改于: 2023-12-03 15:07:18.037000             🧑  作者: Mango
在开发过程中,有时候需要同时连接多个数据库,而 CodeIgniter 很好地支持了这一功能。以下是如何在 CodeIgniter 中加载多个数据库。
首先,需要在配置文件(application/config/database.php
)中配置多个数据库连接信息。
$first_db = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'first_db_user',
'password' => 'first_db_password',
'database' => 'first_db_name',
'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
);
$second_db = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'second_db_user',
'password' => 'second_db_password',
'database' => 'second_db_name',
'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
);
在控制器中,我们可以像下面这样加载多个数据库:
$first_db = $this->load->database('first_db', TRUE);
$second_db = $this->load->database('second_db', TRUE);
注意第二个参数 TRUE
表示关闭自动连接。如果设置为 FALSE
,每次查询都会自动连接数据库,这样会影响性能。
在加载了多个数据库后,我们可以像下面这样在代码中使用不同的数据库:
$first_db->select('*');
$first_db->from('user');
$query_first_db = $first_db->get();
$second_db->select('*');
$second_db->from('category');
$query_second_db = $second_db->get();
以上就是 CodeIgniter 中如何加载多个数据库的方法,希望对您有所帮助。