PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PHP e Postgres:capturando erros?


Se você quiser exceções, precisará usar o PDO.

no caso de funções pg_* e seu código, você precisa verificar se $result tem o valor false, se tiver, ocorreu um erro.

Você pode obter a descrição do erro com pg_last_error()

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

Então, basicamente, toda vez que você usa uma função pg_*, você precisa verificar se false foi retornado, é assim que acontece com essas funções.

Sim, você pode construir seus próprios wrappers então em vez de pg_query* você chama my_db_query(), que então faz a verificação do valor de retorno e lançamento de exceção.

Ou você pode usar o PDO, que é capaz de lançar PDOException para todos os erros que podem ocorrer.