2011-10-08 2 views
0
<?php 
    class UBC_DB 
    { 
     private $db; 


    public function connect() 
    { 
     $db = new mysqli('localhost', 'root', 'root', 'NewsTable'); 
    } 

    public function getDB() 
    { 
     if(!$db) 
     { 
      printf("Can't connect to MySQL Server. ErrorCode: %s\n", mysqli_connect_error()); 
      exit; 
     } 
    } 
} 

$api = new UBC_DB(); 
$api->connect(); 
$api->getDB(); 
?> 

안녕하세요, PHP 마스터. 여기에 문제가있어서 도움이 필요합니다 ... DB 연결을 처리하기 위해 멋진 클래스를 만들려고합니다 ... 그러나 해당 db가 성공적으로 연결되어 있고 적절한 결과를 반환하는 경우에도 $ db, 같은 클래스의 다른 메소드에서이 변수를 재사용 할 수는 없습니다! $ db는 이전에 받았던 것을 기억하지 않아야합니까? getDB 방법에서는 $의 DB는 아무 상관이 없다고 말합니다 :?. (PHP는 다른 변수 범위 - 규칙이mysqli를 사용하여 PHP5에서 변수의 범위

범위 지정 규칙은 펄 같은 다른 언어와 다른

답변

0

, 그것이 사실 내가 제안

singelton- 다음 스타일 DB 클래스 :

<?php 
    class UBC_DB 
    { 
     private static $db; 


    private static function connect() 
    {  
     self::$db = new mysqli('localhost', 'root', 'root', 'NewsTable');  
    } 

    public static function getDB() 
    { 
     if(!self::$db) 
     { 
      self::connect(); 
     } 
     return self::$db; 
    } 
} 


$db = UBC_DB::getDB(); 
관련 문제