【问题标题】:Connect another database in library in Codeigniter在 Codeigniter 的库中连接另一个数据库
【发布时间】:2014-04-09 10:17:35
【问题描述】:

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

现在我想在我的库中连接 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

有人知道代码有什么问题或如何连接另一个数据库吗?

【问题讨论】:

  • 我猜在 V3 Codeigniter 之前没有在库中默认包含超级对象,所以你需要使用 &get_instance(); 来定义它。然后你可以加载并做任何你想做的事
  • 怎么做请详细说明....

标签: php database oracle codeigniter postgresql


【解决方案1】:

类似这样的东西(未测试):

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('...');
    }

}

【讨论】:

    【解决方案2】:

    来自 CodeIgniter 文档

    要在您的库中访问 CodeIgniter 的本机资源,请使用 get_instance() 函数。此函数返回 CodeIgniter 超级 对象。

    这意味着在您的模型中您需要执行以下操作

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

    【讨论】:

      猜你喜欢
      • 2020-01-13
      • 2017-11-04
      • 1970-01-01
      • 2018-02-28
      • 2015-11-26
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      相关资源
      最近更新 更多