Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Fehler aus der „prepare()'-Methode von PDO in PHP abrufen?

Wie kann ich MySQL-Fehler aus der „prepare()'-Methode von PDO in PHP abrufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 06:51:09517Durchsuche

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

Wie rufe ich Abfragefehler aus PDO Prepare() in PHP ab?

Problem:

Bedenken Sie den folgenden PHP-Code :

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

Wie können Sie hier den beabsichtigten MySQL-Fehler für die Abfrage erhalten? Beispiel?

Lösung:

Um Fehlerinformationen von Prepare() abzurufen, müssen Sie:

  1. Das Fehlermodus-Attribut-PDO festlegen: :ATTR_ERRMODE zu PDO::ERRMODE_EXCEPTION.
  2. Deaktivieren Sie die PDO::ATTR_EMULATE_PREPARES-Funktion, da sie verhindert, dass der MySQL-Server die Anweisung sofort verarbeitet.

Hier ist ein Beispiel:

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

Dieser Code löst eine Ausnahme aus und gibt Folgendes aus Fehlermeldung:

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Fehler aus der „prepare()'-Methode von PDO in PHP abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn