Pregunta

Tengo crear una clase llamada database.php para interactuar con la base de datos de MySQL usando la clase de pera Db.

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;
    }
?>

Y yo estoy llamando esta clase de un archivo de ejemplo prueba.php

prueba.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();
    }
?>

Cuando corro prueba.php me sale el siguiente error

Advertencia: require_once (/usr/share/pear/DB.php): dejado de flujo abierto: No existe el fichero o directorio /var/www/Avatar/Database.php en la línea 2 Fatal error: require_once (): No se pudo abertura necesaria '/Usr/share/pear/DB.php' (Include_path = ':. / Usr / share / php: / usr / share / pera') en el /var/www/Avatar/Database.php línea 2

No sé por qué estoy recibiendo este error. En phpinfo () muestra include_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear

Estoy utilizando php5 e incluso intenté instalar el paquete php-pear, todavía consigo el mismo error. No entiendo lo que está mal aquí. Por favor alguien puede apuntar en una dirección correcta.

Nota: no he instalado php5 usando sudo apt-get install php5. He descargado los paquetes usando PHP5 Keryx aplicación.

¿Fue útil?

Solución

Las apariencias no ha instalado el paquete DB, trate de símbolo del sistema, hacer

pear list

Si no se instala un paquete de DB, se puede instalar con

pear install DB

ejemplo de documentación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top