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