我在两个不同的服务器上有两个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;
}
}
在joinables函数中,我试图将内部联接应用于来自db的items表和来自db2的products表。
根据我的理解,当执行开始时,与db相关的所有实例都会在第一部分执行,直到行$query = $this->db->get();
由于尚未执行与db2有关的查询,因此$this->db2->join('bdb.products P', 'O.ID=P.ID', 'inner');
行尚未执行。
因此,我没有得到想要的结果。从行$this->db->select('*');
开始执行时,如何确保db2实例的输出对我可用?