Codeigniter:如何从2个不同的连接连接数据库中的2个表

Codeigniter:如何从2个不同的连接连接数据库中的2个表,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,我在database.php中建立了两个数据库连接,一个用于读取本地主机,另一个用于写入在线数据库“insert” function get_users() { $write_db = $this->load->database('default', TRUE); /* database conection for localhost DB */ $read_db = $this->load->database('read', TRUE)

我在
database.php
中建立了两个数据库连接,一个用于读取本地主机,另一个用于写入在线数据库“insert”

    function get_users() {
    $write_db   = $this->load->database('default', TRUE); /* database conection for localhost DB */
    $read_db    = $this->load->database('read', TRUE); /* database conection for online DB */

    $read_db->select('*');
    $read_db->from('ibitstore.user');
    $write_db->join('english.answers','ibitstore.user.user_id = english.answers.user_id');
    $query = $read_db->get();

    if($query->num_rows() > 0)
        return $query->result_array();

    return array();
}
但是当我想将localhost数据库中的“answers”和在线数据库中的“user”两个表连接起来时,我遇到了这个问题

    function get_users() {
    $write_db   = $this->load->database('default', TRUE); /* database conection for localhost DB */
    $read_db    = $this->load->database('read', TRUE); /* database conection for online DB */

    $read_db->select('*');
    $read_db->from('ibitstore.user');
    $write_db->join('english.answers','ibitstore.user.user_id = english.answers.user_id');
    $query = $read_db->get();

    if($query->num_rows() > 0)
        return $query->result_array();

    return array();
}
当我在join子句中使用
$write\u db

数据是从联机数据库检索的,但不是从本地主机数据库检索的,就像它忽略了我尝试使用的联接一样:

$read\u db->join('english.answers','ibitstore.user.user\u id=english.answers.user\u id')

然后我得到了这个SQL错误。看起来它认为“答案”表在联机数据库上:

A Database Error Occurred
错误号码:1142

选择拒绝用户'user'@'49.32.197.240'的命令以获取表'answers'

SELECT *
FROM (`ibitstore`.`user`)
  JOIN `english`.`answers`
    ON `ibitstore`.`user`.`user_id` = `english`.`answers`.`user_id`
文件名:C:\xampp\htdocs\english\system\database\DB\u driver.php

电话号码:330


请提供帮助:(

您一次只有一个数据库连接。您必须在一个数据库上运行查询,在第二个数据库上运行查询,然后在PHP中处理这两个数据库的结果。

您可以在两个或多个不同的数据库上运行一个SQL查询。包含每个数据库的表。

如何从一个数据库中获取数据,然后使用您自己的逻辑将其合并。

我认为数据库不允许交叉连接连接。问题是您无权从数据库中访问一个数据库,这就是产生错误的原因。如果您允许使用访问数据库,则可以使用您的方法。这很好。没有问题