2014-04-09 120 views
1

我使用两个数据库,oracle和postgresql。 Postgre数据库是默认的,我想连接只在需要的地方。那我该怎么做?在Codeigniter库中连接另一个数据库

现在我想在我的库中连接oracle数据库。

我在图书馆代码:

 function find_all_subjects($id1,$id2) 
{ 
    $DB1 = $this->load->database('database2', TRUE); 
    $sql="sql here"; 
    $query=$DB1->query($sql); 
    return $query->result(); 

} 

但低于其给予错误:

Severity: Notice 

Message: Undefined property: Somefunction::$load 

做任何人有什么错的代码或如何连接另一个数据库?

+0

我想之前V3笨不包括默认情况下,库中的超级对象,所以你需要使用&get_instance来定义它();那么你可以加载和做任何你想要的 – ahmad

+0

如何做请详细说明.... –

回答

0

像这样(未测试):

class Classname { 

    protected $CI; 

    protected $database2; 

    public function __construct() { 
     $this->CI =& get_instance(); 
     $this->database2 = $this->CI->load->database('database2', TRUE); 
    } 

    public function function_name() { 
     $this->database2->query('...'); 
    } 

} 
0

从CodeIgniter的文档

访问磁带库中CodeIgniter的本地资源使用 get_instance()函数。这个函数返回CodeIgniter超级对象 。

这意味着你的模型,你需要做以下

$CI =& get_instance(); 
$DB1 = $CI->load->database('database2', TRUE);