Maison >base de données >tutoriel mysql >Comment récupérer les erreurs MySQL à partir de la méthode `prepare()` de PDO en PHP ?

Comment récupérer les erreurs MySQL à partir de la méthode `prepare()` de PDO en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 06:51:09567parcourir

How to Retrieve MySQL Errors from PDO's `prepare()` Method in PHP?

Comment récupérer les erreurs de requête de PDO prepare() en PHP ?

Problème :

Considérez le code PHP suivant :

$st = $db->prepare("SELECT * FROM c6ode");

Comment pouvez-vous obtenir l'erreur MySQL prévue pour la requête dans ce exemple ?

Solution :

Pour récupérer les informations d'erreur de prepare(), vous devez :

  1. Définir l'attribut de mode d'erreur PDO : :ATTR_ERRMODE à PDO::ERRMODE_EXCEPTION.
  2. Désactivez le PDO::ATTR_EMULATE_PREPARES, car elle empêche le serveur MySQL de traiter immédiatement l'instruction.

Voici un exemple :

<?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 (?)');

Ce code lèvera une exception et imprimera ce qui suit message d'erreur :

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

Déclaration:
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