Les erreurs générées par la plupart des SGBDR ne sont plus traitées comme des alertes. Désormais elles sont stockées et deviennent disponibles à partir d'une fonction spécifique.

En général, deux fonctions PHP retournent respectivement le numéro et le message de l'erreur en cours. Certains SGBDR ne gérent que le message d'erreur tels que PostgreSQL et Sybase.

// message d'erreur généré par Microsoft SQL Server
$message = mssql_get_last_message();

// numéro et message d'erreur due à la dernière action pour MySQL
$num_erreur = mysql_errno([$id_connexion]);
$message = mysql_error([$id_connexion]);

// message d'erreur généré par mSQL
$message = msql_error();

// message d'erreur pour une connexion ou une requête Oracle 8
$message = ociError([$id_connexion | $id_requete]);

// message d'erreur généré par PostgreSQL
$message = pg_ErrorMessage($id_connexion);

// message d'erreur généré par Sybase
$message = sybase_get_last_message();

Quelques gestionnaires de bases de données autorisent le paramétrage du niveau de sévérité des erreurs se produisant sur le serveur ou chez le client.

// niveau de sévérité des erreurs ou des messages 
// d'erreur sur Microsoft SQL Server
mssql_min_error_severity($num_severite);
mssql_min_message_severity($num_severite);

// niveau de sévérité des erreurs du client
sybase_min_client_severity($num_severite);
sybase_min_error_severity($num_severite);
sybase_min_message_severity($num_severite);
sybase_min_server_severity($num_severite);

Enfin, les fonctions Oracle intègrent une instruction d'activation ou de désactivation de l'affichage des données de debuggage.

ociinternaldebug(0 | 1);
Exemple [voir]
<?php
  $id_connexion = mysql_connect("localhost", "root", "mot");
  if (!$id_connexion)
  {
    $message = "<h3>Une erreur est survenue :</h3>" 
                 . "<b><u>Erreur numéro " . mysql_errno() 
                 . ":</u> " . mysql_error() . "</b>";
    echo $message;
  }
  else
  {
    $reussite = mysql_select_db("utilsateur");
    if (!$reussite)
    {
      $message = "<h3>Une erreur est survenue :</h3>" 
                   . "<b><u>Erreur numéro " . mysql_errno() 
                   . ":</u> " . mysql_error() . "</b>";
       echo $message;
    }
    else
    {
      $id_requete = mysql_query("SELECT datte, email, nom " 
                             . "FROM tbl_utilsateur");
      if (!$id_requete)
      {
        $message = "<h3>Une erreur est survenue :</h3>" 
                   . "<b><u>Erreur numéro " . mysql_errno() 
                   . ":</u> " . mysql_error() . "</b>";
        echo $message;
      }
    }
  }
?>