2012-02-24 17 views
0

PHP 5.2で正常に動作しましたが、現在バージョン5.3にアップデートされていない、「データベースが選択されていません」というエラーが発生します。これは私のスクリプトです:データベースが選択されていませんPHP 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()関数を操作しません。これは、noがConf.classからデータを取得するためです。

Db.classとConf.classで何かを変更する必要がありますか?

答えて

0

おそらくコピー/ペーストの問題ですが、db構造体はメソッド名がsetConexionの間にsetConnectionを呼び出します。また、セミコロンを設定ファイルに残しました。

それ以外の場合、コードは正常に実行されました。 error_reporting(E_ALL)を追加することを検討するかもしれません。コマンドラインからテストします。インクルードファイルのパスに問題があり、エラーが表示されないだけです。

関連する問題