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 ));
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 )); } }
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');
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!