Frage

Ich habe auf ein Problem stoßen mit PDO, da ein Fehler nicht gefangen wurde.

Der Code ist einfach und funktioniert gut, ich werde umfassen nur eine Probe Verwirrung zu vermeiden:

$sql = 'INSERT INTO somedatetable (something) 
        VALUES (:something) 
        ON DUPLICATE KEY UPDATE something=:something';

$values = array(":something" => $something);

try {
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($values);    
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage() . "<br />\n";
}

Der Code funktioniert gut, aber wenn es auf einen neuen Modul arbeiten, ich in ein Problem lief, dass keine Datensätze hinzugefügt oder geändert wurden und es wurde kein Fehler abgefangen.

$stmt zurück false aber ich habe keine Ahnung, warum oder wie den Fehler zu finden.

Die Lösung am Ende einfach war, war ich mit einem begrenzten MySQL-Benutzern, die keine Schreibrechte auf den Tisch haben. Diese Fehler immer sofort angezeigt, wenn mysql verwenden, aber unter Verwendung von PDO Ich weiß nicht, wie man sie erhalten.

Wie bekomme ich PHP / PDO angezeigt werden oder diese Art von Datenbankfehler zu fangen?

War es hilfreich?

Lösung

PDO::errorInfo() oder PDOStatement->errorInfo()

Wie für Ausnahmen, überprüfen Sie die Dokumentation für "Fehler und Fehlerbehandlung" in PDO . Ausnahmen sind standardmäßig nicht geworfen, weshalb Sie vielleicht wollen, dass sie aktivieren.

Siehe auch:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top