2012-02-24 2 views
0

내가 PHP 5.2에서 제대로 작동 연결의 종류가 PHP 5.3을 선택,하지만 지금은 유엔 업데이트 버전 5.3과는 오류가 발생하지 : "선택하지 않은 데이터베이스를".데이터베이스는

의 config.php :

$host = 'localhost' 
$user = 'root' 
$password = '' 
$db = 'mydb' 

Conf.class.php :

class Conf{ 

    private $_userdb;  
    private $_passdb;  
    private $_hostdb;  
    private $_db;  
    static $_instance; 

    private function __construct(){ 
       require 'config.php'; 
      $this->_userdb=$user;  
      $this->_passdb=$password;  
      $this->_hostdb=$host;  
      $this->_db=$db; 
    } 

    private function __clone(){ } 

    public static function getInstance(){ 
      if (!(self::$_instance instanceof self)){   
       self::$_instance=new self(); 
      }  
      return self::$_instance; 
    } 

    public function getUserDB(){ 
      $var=$this->_userdb;  
      return $var;  
    } 

    public function getHostDB(){ 
      $var=$this->_hostdb;  
      return $var;  
    }  
    public function getPassDB(){ 
      $var=$this->_passdb;  
      return $var;  
    } 

    public function getDB(){ 
      $var=$this->_db;  
      return $var;  
    } 
} 

Db.class.php :

class Db { 
    private $server;  
    private $user;  
    private $password;  
    private $data_base; 
    private $link; 
    private $result;  
    static $_instance; 


    private function __construct() { 
      $this->setConnection();  
     $this->connect(); 
     $this->result = null; 
    } 

    private function setConnection() { 
      $conf = Conf::getInstance();  
     $this->server = $conf->getHostDB();  
     $this->data_base = $conf->getDB();  
     $this->user = $conf->getUserDB();  
     $this->password = $conf->getPassDB(); 
    } 

    private function __clone(){ } 

    public static function getInstance() { 

      if (!(self::$_instance instanceof self)){ 
         self::$_instance=new self();  
      }   return self::$_instance; 

    } 


     private function connect() { 

      $link=mysql_connect($this->server, $this->user, $this->password); 
      if ($link){  
       mysql_select_db($this->data_base,$link); 
      } 
      if (!$link){   
       die('Can not connect'); 
      }else{ 
       $this->link = $link;  
      } 

    } 
} 

분명히 Db.class이 내 스크립트입니다 클래스는 Conf.class에서 데이터를 가져 오지 않기 때문에 getInstance() 함수를 작동하지 않습니다.

나는 Db.class 및 Conf.class 뭔가를 변경해야합니까?

답변

0
아마

복사/붙여 넣기 문제가 있지만 메소드 이름이 setConexion 동안 당신의 DB 구조는 setConnection를 호출합니다. 또한 설정 파일에 세미콜론을 사용하지 않았습니다.

그렇지 않으면, 당신의 코드는 나를 위해 잘 달렸다. error_reporting (E_ALL)을 추가하는 것을 고려할 수도 있습니다; 커맨드 라인에서 테스트 할 수 있습니다. 파일 경로 포함 문제가 있으며 오류가 표시되지 않는 것 같습니다.

관련 문제