2012-03-08 63 views
0

我剛剛切換到使用ADODB與MySQL和PHP ...我有麻煩連接到數據庫。之前,我可以只有一個全局連接到數據庫並運行它的查詢,但現在看來我需要每個類中的新連接?ADOdb - PHP + MySQL類的範圍和連接

這是應該如何工作或我做錯了什麼?

在配置文件中所做的連接:

include 'admin/db/adodb.inc.php'; 
$DB = NewADOConnection('mysql'); 
$DB->Connect($server, $db_user, $db_pwd, $db); 

Class用於:

class getuser { 
    public function __construct($user_id) { 
     $userquery = $DB->Execute("SELECT * FROM users WHERE id = '".$user_id."'"); 
     while($user = $userquery->FetchRow()){ 
      $this->uid = $user['id']; 
      $this->username = $user['username']; 
      $this->email = $user['email']; 
     } 
    } 
} 

用來連接所有的變量設置的罰款。如果我將配置文件本身包含在該類中,那麼它可以正常工作,因此它必須與$ DB的範圍有關?

很顯然,我不想爲每個類/查詢一個新的數據庫連接...

而且,我需要擔心關閉在任意點的連接?

提前感謝

+0

只是好奇。爲什麼哦爲什麼你會想用PHP自由選擇使用ADODB? – dubvfan87 2012-03-09 02:40:51

+0

我被綁定到使用mysql + php,這似乎是輕鬆緩存查詢的最佳/最簡單的選項。 – Tim 2012-03-09 07:49:10

回答

0

它看起來就像你不告知的PHP $ DB是一個全局變量。請嘗試以下操作:

class getuser { 
    public function __construct($user_id) { 
     global $DB; 
     $userquery = $DB->Execute("SELECT * FROM users WHERE id = '".$user_id."'"); 
     while($user = $userquery->FetchRow()){ 
      $this->uid = $user['id']; 
      $this->username = $user['username']; 
      $this->email = $user['email']; 
     } 
    } 
}