1

我是 PDO 的新手,我想从一开始就这样做——我将在一个站点上替换我的旧 mysql_ 函数。

我做对了吗?:

我是否应该将连接代码放在 try/catch 中并将其保存到文件中,并将其包含在页面顶部。然后将查询也放入 try/catch 中。

或者:

我应该将连接代码放在一个文件中并将其包含在查询上方的 try/catch 语句的顶部吗?

版本 1:

include('pdo.php'); // try/catch in file

try { 

    $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
    $stmt->execute(array('id' => $id));

    while($row = $stmt->fetch()) {
        print_r($row);
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

版本2:

try {
    include('pdo.php'); // no try/catch in file

    $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
    $stmt->execute(array('id' => $id));

    while($row = $stmt->fetch()) {
        print_r($row);
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

或者我应该在两个地方都放 try/catch 吗?

4

1 回答 1

1

你应该同时做甚至更多:

  • 设置一个向用户显示消息并停止 PHP 的错误处理程序(请参阅 参考资料set_error_handler
  • 启动连接时,添加 try/catch 并在捕获异常时抛出错误。我猜如果没有数据库连接,您的网站将无法运行。
  • 围绕您的查询进行尝试/捕捉以从错误中优雅地恢复(如果可以)
于 2012-07-03T16:24:38.403 回答