2011-07-21 113 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類的東西。

運作良好。