W przypadku niepowodzenia, większość funkcji DB zwraca obiekt DB_Error, który zawiera informacje o błędzie. DB_Error oferuje te same funkcje co PEAR_Error.
Wiadomości błędów zwracane przez DB_Error::getMessage() są stałe dla każdego DBMS.
Kod błędu zwracany przez DB_Error::getCode()
jest taki sam dla różnych baz danych. Kod ten oparty jest na
stałych DB_ERROR_* zdefiniowanych w
DB.php
.
DB_Error::getDebugInfo() oraz DB_Error::getUserInfo() zwracają całkowicie natywne raporty błędów DBMS.
Wyłapywanie błędów i określanie co się stało
<?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;
}
?>