请原谅面向对象的PHP Codeigniter中的初学者。我对在https://github.com/NTICompass/CodeIgniter-Subqueries中使用$this->subquery->defaultDB()
感到困惑?
$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 :(得分: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;
}