php - 找不到 Pear DB 类

标签 php mysql ubuntu pear database-abstraction

我创建了一个名为 Database.php 的类,用于使用 Pear Db 类与 MySql 数据库进行交互。

数据库.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 时出现以下错误

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 包,但我仍然遇到同样的错误。 我不明白这里出了什么问题。有人可以指出我正确的方向吗。

注意:我没有使用 sudo apt-get install php5 安装 php5。我已经使用 Keryx 下载了 php5 包申请。

最佳答案

看起来你没有安装 DB 包,在命令提示符下尝试,做

pear list

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

pear install DB

example from documentation

关于php - 找不到 Pear DB 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483546/

相关文章:

php - CakePHP : onError method in AppModel is not called when there is a sql error

PHP 日期时间字符串区分

php - MongoDB - 是否可以通过关联数组键查询?

php - 找到两个用户之间共同喜好的最佳方式

Mysql 5.5 - 无法连接用户但 root - 错误 1045 (28000)

php - 需要二维码帮助才能获得入场二维码门票

mysql - 如何在 Rails 中显示引用表的值?

c# - 左加入 3 个表 mysql

ruby-on-rails - 必须在 Ubuntu 启动时启动 ElasticSearch

bash - 在容器中运行 Jenkins 在主机上构建 docker 文件