Maison > développement back-end > tutoriel php > La requête PDO échoue silencieusement : comment puis-je obtenir des messages d'erreur ?

La requête PDO échoue silencieusement : comment puis-je obtenir des messages d'erreur ?

DDD
Libérer: 2025-01-01 12:57:11
original
400 Les gens l'ont consulté

PDO Query Fails Silently: How Can I Get Error Messages?

Référence — Foire aux questions sur PDO : gestion des erreurs

En tant qu'utilisateur de PHP Data Objects (PDO), il est essentiel de savoir comment gérer efficacement les erreurs. Cet article répond à une question courante concernant la détection d'erreurs dans PDO.

La requête PDO échoue mais je ne vois aucune erreur. Comment obtenir un message d'erreur de PDO ?

Pour obtenir des messages d'erreur de PDO, vous devez définir le mode d'erreur sur exceptions. Les exceptions offrent plusieurs avantages par rapport aux erreurs régulières, notamment :

  • Traces de pile pour le débogage
  • Possibilité de détecter ou de gérer les erreurs à l'aide de blocs try..catch ou de gestionnaires d'erreurs
  • Gestion cohérente des erreurs PHP et rapport d'erreurs paramètres

Exemple :

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
$opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    // Other options
];
$pdo = new PDO($dsn, $user, $pass, $opt);

try {
    // Execute your PDO query here
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage() . "\n";
}
Copier après la connexion

Remarques importantes :

  • Définition du mode d'erreur comme une option de connexion active également des exceptions pour les erreurs de connexion.
  • Activez le rapport d'erreurs et supprimez les erreurs avec prudence.
  • Évitez d'utiliser l'opérateur de suppression d'erreur (@) avec les instructions PDO.
  • N'utilisez jamais de blocs try..catch uniquement pour la sortie de messages d'erreur. Les exceptions non interceptées sont déjà efficace à cette fin.
  • Utilisez try..catch uniquement si la gestion des erreurs est nécessaire, comme l'annulation de transactions.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal