Maison > base de données > tutoriel mysql > Comment puis-je récupérer et gérer les erreurs de préparation de requête à l'aide de PDO prepare() en PHP ?

Comment puis-je récupérer et gérer les erreurs de préparation de requête à l'aide de PDO prepare() en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-23 09:22:18
original
948 Les gens l'ont consulté

How Can I Retrieve and Handle Query Preparation Errors Using PDO prepare() in PHP?

Récupération des erreurs de requête à partir de prepare() dans PDO PHP

Lorsque vous travaillez avec PDO PHP, vous pouvez rencontrer des situations dans lesquelles vous devez gérer les erreurs qui se produisent lors de la préparation de la requête. L'extrait de code suivant tente de préparer une requête à l'aide de la méthode prepare(), mais vous pouvez avoir besoin d'informations supplémentaires sur l'erreur en cas d'échec :

$st = $db->prepare("SELECT * FROM c6ode");
Copier après la connexion

Pour récupérer l'erreur MySQL prévue pour la requête, vous devez suivez des étapes spécifiques :

  1. Définissez le mode d'erreur :
    Configurez l'erreur PDO mode de reporting à PDO::ERRMODE_EXCEPTION en utilisant la méthode setAttribute(). Cette étape permet à l'objet PDO de lever des exceptions lorsque des erreurs se produisent.
  2. Désactiver la préparation émulée (facultatif) :
    Par défaut, PDO émule la préparation des instructions préparées. Pour vous assurer que le serveur MySQL reçoit réellement l'instruction pour validation, désactivez cette fonctionnalité en définissant PDO::ATTR_EMULATE_PREPARES sur false.

Voici un exemple d'extrait de code qui illustre ces étapes :

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
?>
Copier après la connexion

Le code ci-dessus entraînera la levée d'une exception avec ce qui suit message :

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist
Copier après la connexion

En suivant ces étapes, vous pouvez récupérer et gérer efficacement les erreurs qui se produisent lors de la préparation de la requête à l'aide de la méthode prepare() dans PDO PHP.

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