Maison > base de données > tutoriel mysql > Comment récupérer les erreurs SQL des instructions préparées PDO en PHP ?

Comment récupérer les erreurs SQL des instructions préparées PDO en PHP ?

Barbara Streisand
Libérer: 2024-12-15 20:47:17
original
832 Les gens l'ont consulté

How to Retrieve SQL Errors from PDO Prepared Statements in PHP?

Récupération des erreurs SQL dans PDO/Prepare en PHP

Pour vérifier les erreurs intentionnelles dans les requêtes MySQL à l'aide du prepare() méthode en PDO PHP, suivez ces étapes :

1. Définissez l'attribut du mode d'erreur

Définissez l'attribut du mode d'erreur sur PDO::ERRMODE_EXCEPTION à l'aide de la méthode setAttribute() pour activer la gestion des exceptions. Cela entraînera la méthode de préparation à lever une exception si une erreur se produit :

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Copier après la connexion

2. Désactivez l'émulation

Désactivez PDO::ATTR_EMULATE_PREPARES en le définissant sur false. Ceci est nécessaire car le serveur MySQL peut ne pas évaluer l'instruction préparée avant son exécution, ce qui rend plus difficile la détection des erreurs :

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
Copier après la connexion

Exemple :

Le code suivant prépare la requête "SELECT * FROM c6ode" et lève une exception si la table c6ode n'existe pas :

try {
    $st = $db->prepare("SELECT * FROM c6ode");
} catch (PDOException $e) {
    // Handle the exception and display the error message
}
Copier après la connexion

Exception Sortie :

L'exécution du code ci-dessus (avec c6ode inexistant) imprimera un message d'exception indiquant que la table n'existe pas :

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.c6ode' doesn't exist
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