梨DB类未找到(Pear DB class not found)

2019-10-29 18:09发布

我创建一个名为database.php中的使用PEAR DB类MySql数据库交互类。

为database.php

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

class DataBase
{

    private $dsn = 'mysql://root:xxxxxx@localhost/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();
    }
?>

当我运行test.php的,我得到以下错误

警告:require_once(/usr/share/pear/DB.php):未能打开流:在/var/www/Avatar/Database.php第2行致命错误没有这样的文件或目录:require_once():需要打开失败'/usr/share/pear/DB.php'(include_path中= ':在/ usr /共享/ PHP的:在/ usr /共享/梨')在/var/www/Avatar/Database.php第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 。 我已经下载使用PHP5包Keryx应用。

Answer 1:

您似乎没有安装DB包,尝试在命令提示符下,执行

pear list

如果没有包装的DB安装,你可以用它安装

pear install DB

例如,从文档



文章来源: Pear DB class not found