PHP и Postgres: ловушки ошибок?

Как мне подготовить код, если он что-то не удастся? С заявлением try-catch или?

function delete_question ( $question_id ) { $dbconn = pg_connect("host=localhost port=5432 dbname=heoa user=heoa password=123"); // removes questions and its dependencies: answers and tags $result = pg_query_params ( $dbconn, 'DELETE FROM questions WHERE question_id = $1', array ( $question_id ) ); 

Если вы хотите исключений, вам нужно использовать PDO.

в случае функций pg_ * и вашего кода вам нужно проверить, имеет ли значение $ result значение false, если это так, то произошла ошибка.

Вы можете получить описание ошибки с помощью pg_last_error ()

Что-то вроде этого:

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

Итак, в принципе, каждый раз, когда вы используете функцию pg_ *, вам нужно проверить, было ли возвращено false, так оно и есть с этими функциями.

Да, вы можете создавать свои собственные обертки, поэтому вместо pg_query * вы вызываете my_db_query (), который затем выполняет проверку возвращаемого значения и бросает исключение.

Или, вы можете пойти с PDO, который может бросить вам PDOException для всех ошибок, которые могут возникнуть.

У меня есть другая практика

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