Extraire les messages d'erreur de PDO
Lorsque vous essayez d'obtenir un message d'erreur à partir d'une exception PDO, il peut être frustrant de rencontrer des résultats vides. Cette question approfondit le problème sous-jacent et fournit une solution à ce problème.
Malgré le réglage du mode d'erreur sur avertissement, l'instruction PDO et ses informations d'erreur renvoient des tableaux vides. Le problème vient du fait que setAttribute affecte le comportement de PDO lors de l'exécution de la requête, et non lors de la préparation de l'instruction.
Dans le cas d'instructions préparées émulées, la fonction prepare() n'interagit pas avec le serveur de base de données, ce qui n'entraîne aucun résultat. vérification des erreurs. Cependant, lors de l'utilisation d'instructions préparées natives, telles que prises en charge par MySQL depuis la version 4.1, définir le mode d'erreur sur exception devrait déclencher une exception lors de l'exécution de la requête.
Pour y parvenir, utilisez le code suivant :
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
En passant aux instructions préparées natives et en définissant correctement le mode d'erreur, vous devriez désormais pouvoir obtenir des messages d'erreur informatifs de vos exceptions PDO.
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!