Si vous voulez des exceptions, vous devez utiliser PDO.
dans le cas des fonctions pg_* et de votre code, vous devez vérifier si $result a la valeur false, si c'est le cas, une erreur s'est produite.
Vous pouvez obtenir la description de l'erreur avec pg_last_error()
Quelque chose comme ça :
$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';
}
Donc, en gros, chaque fois que vous utilisez une fonction pg_*, vous devez vérifier si false a été renvoyé, c'est comme ça avec ces fonctions.
Oui, vous pouvez créer vos propres wrappers. Au lieu de pg_query*, vous appelez my_db_query(), qui effectue ensuite la vérification de la valeur de retour et la levée d'exceptions.
Ou, vous pouvez utiliser PDO, qui est capable de vous lancer PDOException pour toutes les erreurs qui peuvent survenir.