Configuration de gestion des exceptions PDO
En tant que développeur, vous préférez peut-être avoir des exceptions de lancement de PDO par défaut. Cela élimine la nécessité de définir explicitement le mode de gestion des erreurs chaque fois que vous établissez une connexion de base de données. Bien que vous puissiez définir manuellement le mode d'erreur à l'aide de $ dbh-> setAttribute (PDO :: att_errMode, PDO :: errMode_Exception), vous vous demandez peut-être s'il existe un moyen de faire de cela le comportement par défaut.
par défaut par défaut par défaut. Gestion des exceptions
Malheureusement, il n'y a pas de fichier ou d'option de configuration intégré dans le fichier php.ini qui vous permet de définir PDO pour lancer des exceptions par défaut. En effet, PHP gère la gestion des erreurs à l'échelle mondiale, et elle n'est pas spécifique à PDO.
Solution
Pour réaliser le comportement souhaité, vous avez deux options:
1. Constructor Argument
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 de wrapper
Alternativement, vous pouvez créer une classe de wrapper qui étend PDO et définit toujours le mode d'erreur sur le 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 classe PDO personnalisée au lieu de la classe PDO ordinaire et toujours obtenir un comportement de gestion des exceptions:
$pdo = new MyPDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password');
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3