Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过codeigniter使用一个连接和一个查询访问多个数据库_Mysql_Codeigniter - Fatal编程技术网

Mysql 通过codeigniter使用一个连接和一个查询访问多个数据库

Mysql 通过codeigniter使用一个连接和一个查询访问多个数据库,mysql,codeigniter,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']

我有一个关于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;
请提供一些示例代码,帮助我运行上述查询


提前感谢

使用MySQL用户为该数据库创建一个到DB1的连接,例如user
x
,并在MySQL中为user
x
授予DB2
权限,这样您就可以在查询中使用一个连接并访问多个数据库…

没有数据就无法帮助您。在
localhost
上发布用户名和密码以访问您的数据库没有帮助你好,我们,也许我对你不清楚。我需要知道程序是什么。那你为什么需要这些数据呢?实际上,我的问题很简单,即如何使用一个使用codeigniter Framework访问两个DBs的查询对不起,可能我没有正确理解您。我以为你的问题“返回一个结果???”是关于为什么你只得到一个结果。我的问题不好。很抱歉,由于我的英语不好,我没有明确说明我的问题:(实际上,当我使用codeigniter时,我面临着一个问题。我已经将用户x特权授予了DB1和DB2。我可以使用NAVICAT DB工具访问它。但是我不知道codeigniter框架的过程是什么。在进入codeigniter部分之前,使用phpMyAdmin使用用户
x
(不要以root用户或其他用户身份连接)然后在那里测试你的查询以确保它工作,如果它工作,那么你应该在codeigniter中查找问题,否则你的用户定义有问题。感谢Night2提供的宝贵意见,我与新用户testuser进行了检查,它在mysql控制台和NAVICAT工具上工作正常。但问题在codeigniter中,因为我们使用$this->db相反,我需要$this->db_group类型的东西,它可以在一个组中访问多个数据库。那么你有什么线索吗?你能用使用连接和发送查询的代码更新你的问题吗?看到这一点,我可能能帮上忙。你是对的,但现在我要做的是在DB2中制作DB1表的视图,然后在DB2中访问它虽然现在还可以,但我知道这不是一个解决方案,非常感谢您的时间和帮助