Операция объединения двух баз данных с разных серверов в Codeigniter - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть две базы данных mysql на двух разных серверах.Я загрузил свои экземпляры базы данных как db и db2.Посмотрите на мой код ниже:

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Product_model extends CI_Model
{

    function __construct()
    {
        parent::__construct();

    $this->db= $this->load->database('db', true); 
    $this->db2= $this->load->database('db2', true);  
    }

    function jointables()
    {
        $this->db->select('*');
        $this->db->from('adb.items O');
        $this->db2->join('bdb.products P', 'O.ID=P.ID', 'inner');
        $this->db->limit(2,1);
        $query = $this->db->get();

        print_r($query->result_array());

        echo "</br>";
         $this->db2->select('*');
        $this->db2->from('bdb.products');
        $this->db2->limit(2,1);
        $query2 = $this->db2->get();
        print_r($query2->result_array()); exit;

    }
}

В функции jointables я пытаюсь применить внутреннее соединение к таблице элементов из db и таблице продуктов из db2.Когда начинается выполнение, по моему мнению, все экземпляры, относящиеся к db, выполняются в первой части до тех пор, пока строка $query = $this->db->get(); Строка $this->db2->join('bdb.products P', 'O.ID=P.ID', 'inner'); не будет выполнена, поскольку запросы, относящиеся к db2, еще не выполнены.Из-за этого я не получаю желаемого результата.Как мне убедиться, что вывод экземпляра db2 доступен мне, когда выполнение начинается со строки $this->db->select('*');?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...