clase de pera DB no encontrado
-
11-10-2019 - |
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.
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