classe Pear DB not found
-
11-10-2019 - |
Question
J'ai créé une classe appelée database.php pour interagir avec la base de données MySql en utilisant la classe poire 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;
}
?>
Et j'appelle cette classe à partir d'un exemple de fichier 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();
}
?>
Quand je lance test.php je reçois l'erreur suivante
Attention: require_once (/usr/share/pear/DB.php): pas flux ouvert: Aucun fichier ou répertoire /var/www/Avatar/Database.php sur la ligne 2 Fatal error: require_once (): Echec ouverture requise '/Usr/share/pear/DB.php' (Include_path = ': / usr / share / php: / usr / share / pear') en /var/www/Avatar/Database.php sur ligne 2
Je ne sais pas pourquoi je reçois cette erreur. Dans phpinfo () il montre include_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear
J'utilise php5
et j'ai même essayé d'installer package php-pear
, je reçois toujours la même erreur.
Je ne comprends pas ce qui ne va pas ici. Quelqu'un peut-il s'il vous plaît me diriger dans une direction.
Remarque: Je n'ai pas installé php5 en utilisant sudo apt-get install php5
. J'ai téléchargé des paquets php5 en utilisant l'application Keryx .
La solution
Looks vous n'avez pas installé package DB, essayez de commande rapide, faire
pear list
Si aucun paquet de DB
est installé, vous pouvez installer avec
pear install DB