Как мне подготовить код, если он что-то не удастся? С заявлением 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));