3

在codeigniter中,我使用一个包含两个MySQL用户的数据库,现在我想知道是否可以在codeigniter的一个数据库中使用两个MySQL用户。

4

2 回答 2

2

是的你可以!使用不同的用户名/密码使用 2 个数据库连接到相同的数据库!

http://ellislab.com/codeigniter/user-guide/database/connecting.html

于 2013-10-06T09:16:30.027 回答
2

您必须定义第二组数据库参数。尽管 CI 并没有被开发成真正有两个数据库连接,它更多的是用于交换测试和生产数据库。也就是说,它周围有一些技巧。所以首先定义第二组数据库信息,如下所示:

/* FORUM */
$active_group = "forum";
$active_record = TRUE;

$db['forum']['hostname'] = "xxxxx";
$db['forum']['username'] = "xxxxx";
$db['forum']['password'] = "xxxxx";
$db['forum']['database'] = "xxxxx";
$db['forum']['dbdriver'] = "mysql";
$db['forum']['dbprefix'] = "";
$db['forum']['pconnect'] = TRUE;
$db['forum']['db_debug'] = TRUE;
$db['forum']['cache_on'] = FALSE;
$db['forum']['cachedir'] = "";
$db['forum']['char_set'] = "utf8";
$db['forum']['dbcollat'] = "utf8_general_ci";

/* TEST SITE */
$active_group = "default";
$active_record = TRUE;

$db['default']['hostname'] = "xxxxx";
$db['default']['username'] = "xxxxx";
$db['default']['password'] = "xxxxx";
$db['default']['database'] = "xxxxx";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$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"; 

您的活动数据库将是您最后定义的数据库。

完成此操作后,您可以手动连接到第二个(如果您总是需要,也可以将其放入 MY_Controller 中)。然后,您可以像这样加载第二个数据库:

$this->other_db= $this->CI->load->database('forum', TRUE); 

用 dbase 1$this->db和 dbase 2 用$this->other_db(或任何你叫它的名字)访问。

谢谢你

那应该这样做。连接多个数据库的文档可以在这里找到:http ://ellislab.com/codeigniter/database/connecting.html

于 2013-10-06T20:41:11.553 回答