PDO – gestion des erreurs

Gérer les erreurs avec PDO

PDO offre un choix de 3 différentes stratégies de gestion des erreurs, pour s’adapter à votre style de développement.
  • PDO::ERRMODE_SILENT

C’est le mode par défaut. PDO définit simplement le code erreur pour vous afin de l’inspecter à l’aide des méthodes PDO->errorCode () et PDO->errorInfo () à la fois sur les requêtes et sur les objets de la base de données; si l’erreur est issue d’un appel à un objet, vous pouvez invoquer les méthodes PDOStatement->errorCode () ou PDOStatement->errorInfo () sur cet objet. Si l’erreur est issue d’un appel sur un objet de la base de données, vous pouvez invoquer ces méthodes sur l’objet de la base de données.

  • PDO::ERRMODE_WARNING

En plus de définir le code erreur, PDO émettra un message de niveau E_WARNING. Ce paramètre est utile lors des phases de débogage, si vous voulez juste voir le problème qui survient sans interrompre le flot de l’application.

  • PDO::ERRMODE_EXCEPTION

En plus de définir le code erreur, PDO lancera une exception PDOException et définira ses propriétés pour refléter le code d’erreur et l’information sur l’erreur. Ce paramètre est également utile durant la phase de débogage car il va stopper le script et pointer du doigt   l’endroit de l’erreur dans votre code (souvenez-vous: les transactions sont automatiquement annulées si l’exception fait stopper le script).

Ce mode Exception est également utile pour structurer la gestion des erreurs. Il est plus clair que les warnings lancés traditionnellement par PHP, et requiert moins de code que le mode silencieux et la vérification explicite de la valeur de retour de chaque appel à la base de données.

PDO standardise les codes d’erreur à l’aide de SQL-92 SQLSTATE. Les pilotes individuels PDO sont responsables du mapping de leurs propres codes avec les codes SQLSTATE appropriés. La méthode PDO->errorCode () renvoie un seul code SQLSTATE. Si vous avez besoin de plus d’informations sur une erreur, PDO dispose également de la méthode PDO-> errorInfo () qui retourne un tableau contenant le code SQLSTATE, le code et la chaîne d’erreur spécifiques au pilote.