2010-12-19 1 views
0

Pear Dbクラスを使用してMySqlデータベースとやりとりするためのDatabase.phpというクラスを作成しました。Pear DBクラスが見つかりません

database.phpで

<?php 
require_once('DB.php'); 
require_once('cException.php'); 

class DataBase 
{ 

    private $dsn = 'mysql://root:[email protected]/avatar'; 
    private $conn; 


    //Constructor 
    function __construct() 
    { 
     global $conn; 
     $this->conn = DB::connect($dsn); 
     if(DB::isError($conn)) 
     { 
      throw new DatabaseConnectionException(); 
     } 
    } 

    //destructor 
    function __destruct() 
    { 
     $this->conn->disconnect(); 
    } 

    public function select($query) 
    { 
     $conn->setFetchMode(DB_FETCHMODE_ASSOC); 
     $result = & $conn->query($query); 

     if(DB::isError($result)) 
     { 
      return new SelectCommandException($result->getMessage()); 
     } 

     return $result; 
    } 

    static public function instance() 
    { 
     static $objDB; 

     if(! isset($objDB)) 
     { 
      $objDB = new DataBase(); 
     } 

     return $objDB; 
    } 
?> 

そして私は、私がテストを実行test.phpを

test.phpを

<?php 

ini_set('display_errors', 1); 
ini_set('log_errors', 1); 
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
error_reporting(E_ALL); 


    require_once 'Database.php'; 

    try 
    { 
     $db = DataBase::instance(); 
    } 
    catch (DatabaseConnectionException $ex1) 
    { 
     echo $ex1->toString(); 
    } 

    try 
    { 
     $sql = "Select * from register"; 
     $result = $db->select($sql); 
     var_dump($result); 
    } 
    catch (SelectCommandException $ex2) 
    { 
     echo $ex2->toString(); 
    } 
?> 

サンプルファイルからこのクラスを呼び出しています。 php次のエラーが発生する

Warning: require_once(/usr/share/pear/DB.php): failed to open stream: No such file or directory in /var/www/Avatar/Database.php on line 2 Fatal error: require_once(): Failed opening required '/usr/share/pear/DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/Avatar/Database.php on line 2

なぜこのエラーが発生するのかわかりません。 phpinfo()でinclude_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear

私はphp5を使用しています。私はさらにパッケージをインストールしようとしましたが、まだ同じエラーが表示されます。 ここで何が間違っているのか分かりません。誰かが私を正しい方向に向けることができますか?

注:sudo apt-get install php5を使用してphp5をインストールしていません。私はKeryxアプリケーションを使用してphp5パッケージをダウンロードしました。

答えて

4

あなたは、DBパッケージをインストールし、コマンドプロンプトにしようと、DBのないパッケージがインストールされていない場合は

pear list 

をしませんでしたルックス、あなたは

pear install DB 

example from documentation

+0

おかげでそれをインストールすることができますたくさん。 :)。つまり、Pear DBクラスはPhp 5に同梱されていませんか?再びすばやい返信に感謝します。 – Searock

+0

@Searock - http://pear.php.net/package/DB - そう思わない。このパッケージの間には**が置き換えられました** – ajreal

+0

したがって、私はPear DBクラスの使用をやめ、MDB2に切り替えることをお勧めしますか? – Searock

関連する問題