PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PHP e Postgres:catturare gli errori?

Se vuoi eccezioni, devi usare PDO.

in caso di funzioni pg_* e del tuo codice, devi controllare se $result ha il valore di false, se lo fa, si è verificato un errore.

Puoi ottenere la descrizione dell'errore con pg_last_error()

Qualcosa del genere:

$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';
}

Quindi, in pratica, ogni volta che usi una funzione pg_*, devi controllare se è stato restituito false, è proprio così con quelle funzioni.

Sì, puoi creare i tuoi wrapper così invece di pg_query* chiami my_db_query(), che quindi esegue il controllo del valore di ritorno e la generazione di eccezioni.

Oppure potresti utilizzare PDO, che è in grado di generare PDOException per tutti gli errori che possono verificarsi.