-1

我希望我的应用程序同时连接到多个数据库。这是我当前的数据库配置:

'database_config' => array(
'db1' =>array( 
    'host_name' => 'localhost',
    'username'  => 'root',
    'password'  => '',
    'dbname'    => 'database1',
    'dbprefix'  => '',
    'dbtype'    => 'mysql'

)
,'db2' => array(
    'host_name' => 'localhost',
    'username'  => 'root',
    'password'  => '',
    'dbname'    => 'test',
    'dbprefix'  => '',
    'dbtype'    => 'mysql'

)  
);

现在我包含这个文件,如果多个数据库连接在配置文件中作为数组给出,我想连接数据库,否则连接到 db 配置文件中给出的第一个数据库。

我编写了自己的编码结构。与 codeigniter、cakephp 或 yii 框架样式相同,我想一次连接多个数据库,并希望访问配置文件中给出的同名数据库。

如果有多个配置,我尝试循环,但是在连接后如果我想访问数据库,那么它会显示错误,因为我想访问并从中选择数据的表仅在第一个数据库中可用,但在第二个数据库中不存在。所以如果有人用oops风格对此有更好的解决方案,请给我解决方案。这会很有帮助。

感谢和问候, Sanjay Dey

4

1 回答 1

2

根据我在 codeigniter 的经验,我们使用此配置来定义数据库并连接到我们想要的每个数据库

$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";  

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

当我们需要它时

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

使用 $this->db 访问 dbase 1,使用 $this->db_forum 访问 dbase 2(或者任何你叫它的名字)。

于 2012-08-19T06:41:20.893 回答