PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PHP und Postgres:Fehler abfangen?

Wenn Sie Ausnahmen wünschen, müssen Sie PDO verwenden.

im Fall von pg_*-Funktionen und Ihrem Code müssen Sie überprüfen, ob $result den Wert false hat, wenn dies der Fall ist, ist ein Fehler aufgetreten.

Die Fehlerbeschreibung erhalten Sie mit pg_last_error()

Etwa so:

$result = pg_query_params ( $dbconn,
        'DELETE FROM questions
        WHERE question_id = $1',
        array ( $question_id )
    );


if ($result === false) {
    print pg_last_error($dbconn);
} else {
    print 'everything was ok';
}

Im Grunde müssen Sie also jedes Mal, wenn Sie eine pg_*-Funktion verwenden, überprüfen, ob falsch zurückgegeben wurde, das ist bei diesen Funktionen einfach so.

Ja, Sie können Ihre eigenen Wrapper erstellen, also rufen Sie anstelle von pg_query* my_db_query() auf, das dann die Überprüfung des Rückgabewerts und das Auslösen von Ausnahmen durchführt.

Oder Sie könnten PDO verwenden, das in der Lage ist, Ihnen PDOException für alle Fehler zu werfen, die auftreten können.