2012-03-08 2 views
0

방금 ​​MySQL 및 PHP에서 ADODB를 사용하도록 전환했습니다 ... 데이터베이스에 연결하는 데 문제가 있습니다. 전에는 데이터베이스에 대한 전역 연결을 하나만 가지고 쿼리를 실행할 수 있었지만 이제는 각 클래스에 새로운 연결이 필요한 것 같습니다.ADOdb - PHP + MySQL 클래스 범위 및 연결

그것이 정상적으로 작동하는 방식입니까, 아니면 제가 잘못하고있는 것입니까? 설정 파일에 만든

연결 : 사용

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

클래스 : 연결하는 데 사용

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의 범위와 관련이 있어야합니까?

분명히

내가 각 클래스/쿼리에 대한 새로운 데이터베이스 연결을하고 싶지 않아 ... 또한

는, 내가 어떤 지점에서 연결을 닫기에 대해 걱정할 필요합니까? 당신이 $ DB 글로벌 변수 PHP를 통보하지 않는 것처럼 사전에

많은 감사

+0

그냥 궁금합니다. 왜 왜 PHP로 자유롭게 선택하여 ADODB를 사용하고 싶습니까? – dubvfan87

+0

mysql + php를 사용하고 싶습니다. 쿼리를 쉽게 캐싱 할 수있는 가장 쉬운 옵션입니다. – Tim

답변

0

것 같습니다. 다음을 시도하십시오.

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']; 
     } 
    } 
}