0
我试图在CI中实现多个数据库。我的代码是在这里:错误CodeIgniter中使用多个数据库
//database.php
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "root";
$db['default']['database'] = "ravelex";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "rvx_";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['smf']['hostname'] = "localhost";
$db['smf']['username'] = "root";
$db['smf']['password'] = "root";
$db['smf']['database'] = "smf";
$db['smf']['dbdriver'] = "mysql";
$db['smf']['dbprefix'] = "smf_";
$db['smf']['pconnect'] = TRUE;
$db['smf']['db_debug'] = TRUE;
$db['smf']['cache_on'] = FALSE;
$db['smf']['cachedir'] = "";
$db['smf']['char_set'] = "utf8";
$db['smf']['dbcollat'] = "utf8_general_ci";
该模型是
//user_model.php
class user_model extends Model {
private $ravelex_db;
function user_model() {
parent::Model();
$this->ravelex_db = $this->load->database('default', TRUE);
}
function find_all() {
print_r($this->ravelex_db);
$q = $this->ravelex_db->get('users');
return $q->result();
}
}
//smf_user_model.php
class smf_user_model extends Model {
private $smf_db;
function smf_user_model() {
parent::Model();
$this->smf_db = $this->load->database('smf', TRUE);
}
function find_all() {
$q = $this->smf_db->get('members');
return $q->result();
}
}
控制器测试仪
class mutipledb extends Controller {
function mutipledb() {
parent::Controller();
$this->load->database();
$this->load->model('user_model');
$this->load->model('smf_user_model');
}
function index() {
print_r($this->user_model->find_all());
print_r($this->smf_user_model->find_all());
}
}
有一些错误时,第一个数据库使用第二数据库名称。但它仍然使用它的前缀。
的错误是
A Database Error Occurred
Error Number: 1146
Table 'smf.rvx_users' doesn't exist
SELECT * FROM (`rvx_users`)
如果我只是加载一个模型......,它的工作原理。 class mutipledb extends Controller {
function mutipledb() {
parent::Controller();
$this->load->database();
//$this->load->model('user_model');
$this->load->model('smf_user_model');
}
function index() {
//print_r($this->user_model->find_all());
print_r($this->smf_user_model->find_all());
}
}
为什么会发生这种情况?请帮助我
重复http://stackoverflow.com/questions/2124993/mutiple-database-in-codeigniter的。请不要重复您的问题,您可以编辑您现有的问题以提供更多详细信息。 – Groo 2010-01-25 09:18:23
我发现这篇文章比其他文章更有帮助。谢谢阿迪。 – 2012-01-29 04:53:28