Codeigniter数据库连接到模型中的多个数据库

时间:2011-07-21 11:04:45

标签: codeigniter

为了弥合旧系统和CodeIgniter之间的差距,我在CI 2中扩展了CI_Model。这是我的构造函数:

public function __construct ($pkname='', $tablename='')
{    
    parent::__construct ();
    $this->conf['pkname']   = $pkname;    //Name of auto-incremented Primary Key
    $this->conf['tablename']= $tablename; //Corresponding table in database

    $this->DBR = $this->load->database('read', TRUE);
    $this->DBW = $this->load->database('write', TRUE);
    // echo $this->DBR->conn_id
    // echo $this->DBW->conn_id
}

如果我取消注释回显conn_id的两条线,它们每次都不同。不应该重新使用连接信息吗?我认为这意味着我每次都会遇到相同的资源#ID。我两个都有pconnect = TRUE。

Resource id #24
Resource id #25
... snip ...
Resource id #127
Resource id #128

我是开发人员所以这不是一个大问题,但我不想为每个模型单独连接而去生产。感谢。

1 个答案:

答案 0 :(得分:0)

此论坛帖子中的db_manager类解决了问题:

http://codeigniter.com/forums/viewthread/157298/

我自动加载db_manager库,然后在扩展CI_Model的My_Model类中使用它

if (!$dbh = $this->db_manager->get_connection($type))
{
    // throw exceptions etc
}


$r = mysql_query ($query, $dbh->conn_id);

我现在正在使用mysql_query,因为我正在从另一个系统转换而不想立即重写所有模型。否则你可以使用CI Active类。

运作良好。