2011-07-21 142 views
0

为了弥补旧的系统和笨之间的差距,我已经延长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 ,每次都是不同的。它不应该重新使用连接信息吗?我认为这意味着我每次都会碰到相同的Resource #ID。两者都有pconnect = TRUE。

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

我在开发,所以这不是一个大问题,但我不想去生产与它分别为每个模型连接。谢谢。

回答

0

在这个版面发表的db_manager类解决了这个问题:

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

我自动加载那么db_manager库在扩展CI_Model

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


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

我用我的My_Model类使用mysql_query现在是因为我正在从一个不同的系统转换,现在不想重写所有的模型。否则,你可以使用CI Active类的东西。

运作良好。