通过codeigniter使用一个连接和一个查询访问多个DB

时间:2012-09-18 09:19:48

标签: mysql codeigniter

我有关于mysql db和codeigniter框架的问题

我想使用一个查询,使用 codeigniter 访问多个数据库,返回一个结果集 示例如下:

SELECT A.name, B.class_name
FROM DB1.Table1 AS A, DB2.Table1 AS B
WHERE A.id = B.id

返回一个结果????

以下是我在codeigniter中的连接设置

$db['DB2']['hostname'] = 'localhost';
$db['DB2']['username'] = 'connection_name';
$db['DB2']['password'] = 'connection_password';
$db['DB2']['database'] = 'DB2';
$db['DB2']['dbdriver'] = 'mysql';
$db['DB2']['dbprefix'] = '';
$db['DB2']['pconnect'] = TRUE;
$db['DB2']['db_debug'] = TRUE;
$db['DB2']['cache_on'] = FALSE;
$db['DB2']['cachedir'] = '';
$db['DB2']['char_set'] = 'utf8';
$db['DB2']['dbcollat'] = 'utf8_general_ci';
$db['DB2']['swap_pre'] = '';
$db['DB2']['autoinit'] = TRUE;
$db['DB2']['stricton'] = FALSE;


$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'connection_name';
$db['default']['password'] = 'connection_password';
$db['default']['database'] = 'DB1';
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

请提供一些示例代码,以帮助您运行上述查询。

提前致谢

1 个答案:

答案 0 :(得分:1)

与该数据库的MySQL用户创建1个与DB1的连接,例如用户x,并在MySQL中为x提供用户DB2权限,这样您就可以使用一个在查询中连接和访问多个数据库...