数据库未选择php 5.3


Database not selected php 5.3

我有一种连接在php5.2中正常工作,但现在取消更新到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类不操作函数getInstance(),因为没有从Conf.class.中获取数据

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

可能是复制/粘贴问题,但您的数据库构造调用了setConnection,而您的方法名称是setConexion。您还省略了配置文件中的分号。

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