📅  最后修改于: 2023-12-03 15:22:23.520000             🧑  作者: Mango
CodeIgniter是一个非常流行的PHP框架,使用起来非常方便,而且文档非常全面。CodeIgniter默认只支持单个数据库连接,但是在某些情况下,需要同时连接多个数据库。本文将向您展示如何在CodeIgniter中使用多个数据库。
Step1: 配置多个数据库
为了在CodeIgniter中使用多个数据库,您需要在database.php中进行配置。在application/config/database.php中添加以下代码段:
$all_db = array(//名称
'default' => array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'test1',
'dbdriver' => 'mysql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encryption' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
),
'test2' => array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'test2',
'dbdriver' => 'mysql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encryption' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
)
);
$active_group = 'default'; //默认数据库
$active_record = TRUE;
$db['default'] = $all_db[$active_group];
if($active_group!='default'){
$db[$active_group] = $all_db[$active_group];
}
在上面的代码段中,我们定义了两个数据库:default和test2。您也可以根据您的需要为其命名。
Step2: 使用多个数据库
连接多个数据库后,您可以在代码中轻松地使用它们。例如,您可以使用以下代码片段:
<?php
class Test_model extends CI_Model {
function __construct()
{
parent::__construct();
$this->load->database();//默认读取 default 数据库
}
public function get_test1_data(){
$db1 = $this->load->database('test2', TRUE); //连接test2 数据库
$query = $db1->get('test1_table');
return $query->result();
}
public function get_test2_data(){
$db2 = $this->load->database('test2', TRUE); //连接test2 数据库
$query = $db2->get('test2_table');
return $query->result();
}
}
上述代码片段中,您可以使用$this->load->database('database_name', TRUE);连接不同的数据库。TRUE参数将此数据库配置设置为默认数据库。在代码片段中,我们使用get_test1_data()和get_test2_data()方法来演示如何连接到不同的数据库并检索数据。
Step3: 总结
在CodeIgniter中,您可以轻松地连接多个数据库。只需在database.php中配置多个数据库,然后使用$this->load->database('database_name', TRUE);连接到该数据库。这项功能使得CodeIgniter成为一个更加强大的工具,可以满足各种需求,此外还有更多的开源代码和库可以使用,以提高工作效率。