Maison > base de données > tutoriel mysql > Comment puis-je faire en sorte que PDO lève des exceptions par défaut ?

Comment puis-je faire en sorte que PDO lève des exceptions par défaut ?

Susan Sarandon
Libérer: 2024-11-28 05:26:18
original
236 Les gens l'ont consulté

How Can I Make PDO Throw Exceptions by Default?

Configuration de la gestion des exceptions PDO

En tant que développeur, vous préférerez peut-être que PDO lève des exceptions par défaut. Cela élimine le besoin de définir explicitement le mode de gestion des erreurs chaque fois que vous établissez une connexion à la base de données. Bien que vous puissiez définir manuellement le mode d'erreur à l'aide de $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION), vous vous demandez peut-être s'il existe un moyen d'en faire le comportement par défaut.

Gestion des exceptions par défaut

Malheureusement, il n'y a pas de fichier de configuration intégré ni d'option dans le fichier php.ini qui vous permet de configurer PDO pour qu'il lève des exceptions par défaut. En effet, PHP gère la gestion des erreurs de manière globale et n'est pas spécifique à PDO.

Solution

Pour obtenir le comportement souhaité, vous avez deux options :

1. Argument du constructeur

Vous pouvez transmettre un tableau d'options au constructeur PDO, y compris le mode de gestion des erreurs :

$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password', array(
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
Copier après la connexion

2. Classe Wrapper

Vous pouvez également créer une classe wrapper qui étend PDO et définit toujours le mode d'erreur en mode exception :

class MyPDO extends PDO {
  public function __construct($dsn, $username, $password) {
    parent::__construct($dsn, $username, $password, array(
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ));
  }
}
Copier après la connexion

Avec cette approche, vous pouvez utiliser votre personnalisé Classe PDO au lieu de la classe PDO normale et obtenez toujours un comportement de gestion des exceptions :

$pdo = new MyPDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password');
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal