未选择数据库php 5.3

未选择数据库php 5.3,php,singleton,database-connection,Php,Singleton,Database Connection,我有一种在PHP5.2中正常工作的连接,但是现在取消更新到版本5.3,它会生成错误:“Database not selected”。这是我的剧本: config.php: $host = 'localhost' $user = 'root' $password = '' $db = 'mydb' Conf.class.php: class Conf{ private $_userdb; private $_passdb; private $_hostd

我有一种在PHP5.2中正常工作的连接,但是现在取消更新到版本5.3,它会生成错误:“Database not selected”。这是我的剧本:

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;    
    } 
}
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.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;    
    } 
}
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类不操作函数getInstance(),因为no从Conf.class获取数据


我需要更改Db.class和Conf.class中的某些内容?

可能是复制/粘贴问题,但是当方法名为setConexion时,您的Db构造调用setConnection。您还遗漏了配置文件中的分号

否则,您的代码对我来说运行良好。可以考虑添加一个错误报告(EALALL);以及从命令行进行测试。您可能有一个include文件路径问题,只是没有看到错误