PHP 和 Postgres : catching errors?

标签 php postgresql error-handling

如果出现问题,我应该如何准备代码?用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,这些函数就是这样。

是的,您可以构建自己的包装器,这样您就可以调用 my_db_query() 而不是 pg_query*,它会执行返回值检查和异常抛出。

或者,您可以使用 PDO,它能够为所有可能发生的错误抛出 PDOException。

关于PHP 和 Postgres : catching errors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375331/

相关文章:

java - Spring MVC : Automatically return back to the same page upon binding errors

PHP 搜索并删除数字数组值

java - 您将如何从对象方法中访问对象属性?

postgresql - 在服务器端使用 over table 计算表列

postgresql - Postgres 获取转换表列

php - 全局变量处理

excel - VBA 中可能的最大十进制值是多少?

yii2中PHPExcel导出 "Unreadable Content"Excel文件

php - 我如何检查 HDD 使用 PHP 的繁忙程度?

string - 翻译字符串postgres