En cas d'échec, la plupart des fonctions de DB retournent un objet DB_Error qui contient les informations à propos de l'erreur. DB_Error offre les mêmes fonctions que PEAR_Error.
Le message texte retourné par DB_Error::getMessage() est différent pour chaque DBMS.
L'entier représentant le code erreur retourné par DB_Error::getCode() est également différent pour chaque DBMS. L'entier retourné est basé sur la constante DB_ERROR_* définie dans le fichier DB.php.
DB_Error::getDebugInfo() et DB_Error::getUserInfo() retournent le rapport d'origine de l'erreur renvoyé par le DBMS.
Traitement d'une erreur et recherche de sa cause
<?php
require_once 'DB.php';
$db =& DB::connect('pgsql://utilisateurincorrect:mauvaismotdepasse@localhost/thedb');
if (PEAR::isError($db)) {
/*
* Ce n'est pas ce que vous devriez faire dans vos applications.
* Cet exemple sert à vous montrer les données renvoyées par l'objet ERROR.
*/
echo 'Message standard : ' . $db->getMessage() . "\n";
echo 'Code standard : ' . $db->getCode() . "\n";
echo 'Message DBMS/Utilisateur : ' . $db->getUserInfo() . "\n";
echo 'Message DBMS/Débogage : ' . $db->getDebugInfo() . "\n";
exit;
}
?>