Die meisten Methoden der Klasse DB geben im Fehlerfall ein Objekt der Klasse DB_Error zurück. Es enthält Informationen über den Fehler. Die Klasse DB_Error bietet die gleichen Methoden wie die Klasse PEAR_Error.
Die Textmeldungen, die von DB_Error::getMessage() zurückgegeben werden, sind durchgängig die gleichen, unabhängig vom benutzenden Datenbank-Management-System (DBMS).
Die Fehlernummern, die von DB_Error::getCode() zurückgeliefert werden, sind gleichfalls konstant und unabhängig vom angesprochenem DBMS. Die Integer-Werte basieren auf den Konstanten DB_ERROR_*, die in DB.php definiert sind.
Die Methoden DB_Error::getDebugInfo() und DB_Error::getUserInfo() liefern die datenbankspezifischen Fehlermeldungen.
Fehler abfangen und ausgeben
<?php
require_once 'DB.php';
$db =& DB::connect('pgsql://wronguser:badpw@localhost/thedb');
if (PEAR::isError($db)) {
/*
* This is not what you would really want to do in
* your program. It merely demonstrates what kinds
* of data you can get back from error objects.
*/
echo 'Standard Message: ' . $db->getMessage() . "\n";
echo 'Standard Code: ' . $db->getCode() . "\n";
echo 'DBMS/User Message: ' . $db->getUserInfo() . "\n";
echo 'DBMS/Debug Message: ' . $db->getDebugInfo() . "\n";
exit;
}
?>