2012-11-28 40 views
1

对于面向对象的PHP Codeigniter中的初学者,请原谅。我很困惑在https://github.com/NTICompass/CodeIgniter-Subqueries中使用$this->subquery->defaultDB()在NTICompass CodeIgniter子查询中使用不同的数据库

$db2 = $this->load->database('db2', TRUE); 

$this->load->library('Subquery'); 
$this->subquery->defaultDB($db2) 
$sub = $this->subquery->start_subquery('select'); 
$sub->select('number')->from('numbers')->where('numberID', 2); 
$this->subquery->end_subquery('number'); 

$query = $db2->get('mytable'); 

但子查询仍然使用默认的数据库而不是db2。难道我做错了什么?谢谢。

回答

0

我已经创建了issue到它的仓库,作者说他会在几天内修复它。

如果您急于使用此代码,我有其他选择。我添加了参数defaultDB以用于子查询。希望能帮助到你。干杯!

function start_subquery($statement, $join_type='', $join_on=1, $defaultDB=''){ 
    $db = $this->CI->load->database($defaultDB, true); 
    $this->dbStack[] = $db; 
    $this->statement[] = $statement; 
    if(strtolower($statement) == 'join'){ 
     $this->join_type[] = $join_type; 
     $this->join_on[] = $join_on; 
    } 
    return $db; 
} 
相关问题