2010-12-19 153 views
0

我已經創建了一個名爲Database.php的類,用於使用Pear Db類與MySql數據庫進行交互。Pear DB class not found

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我甚至嘗試安裝php-pear包,仍然我得到相同的錯誤。 我不明白這裏有什麼問題。有人能指點我一個正確的方向。

注意:我還沒有安裝php5使用sudo apt-get install php5。我已經使用Keryx應用程序下載了php5軟件包。

回答

4

看來你沒有安裝DB包,嘗試在命令提示符下,執行

pear list 

如果沒有安裝包的DB,你可以用

pear install DB 

example from documentation

+0

由於安裝了它很多。 :)。這意味着Pear DB類不隨Php 5發貨?再次感謝您的快速回復。 – Searock 2010-12-19 16:04:04

+0

@Searock - http://pear.php.net/package/DB - 不太可能。在這個包之間是**取代了** – ajreal 2010-12-19 16:07:15

+0

那麼建議我停止使用Pear DB類並切換到MDB2? – Searock 2010-12-19 16:14:44