PDO连接尝试catch包括

时间:2012-07-03 15:55:54

标签: php include pdo connection

我是PDO的新手,我想从头开始做 - 我要在网站上替换旧的mysql_函数。

我做对了吗?:

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

或者:

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

VER1:

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();
}

VER2:

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吗?

1 个答案:

答案 0 :(得分:1)

你应该做两件事,甚至更多:

  • 设置一个错误处理程序,向用户显示一条消息并停止PHP(参见set_error_handler
  • 当您启动连接时,添加try / catch并在捕获异常时抛出错误。我想你的网站不会在没有数据库连接的情况下运行。
  • 尝试/捕捉您的查询以便从错误中恢复(当可以时)