确保PDO获取方法结果“false”是错误或空结果

时间:2012-04-13 17:11:01

标签: php mysql pdo

如何使用php PDO mysql驱动程序识别执行错误的获取错误或空结果?

  $sql = ' SELECT * ';
  $sql .= ' FROM test ';
  $sql .= ' WHERE id = 432 ';

  $statement = $this->_db->prepare($sql);
  $status = $statement->execute();

  var_dump($status);

  $result = $statement->fetch(\PDO::FETCH_ASSOC);

  var_dump($result);

  output:
  bool(true)
  bool(false)

所以,我用pdo编写语句,然后执行sql,状态为true,因为没有错误。然后我获取结果,在这种特定情况下,不存在id = 432的行。所以fetch方法返回false。我的问题是fetch方法在出错时也返回false!

我如何确定获取“false”结果是错误还是空结果?

1 个答案:

答案 0 :(得分:0)

如果出现错误,PDO将抛出一个您可以捕获的异常。用try catch包装你的代码,它应该捕获任何异常。

try {
    $rs = $db->prepare('SELECT * FROM foo');
    $rs->execute();
    $foo = $rs->fetchAll();
} catch (Exception $e) {
    echo 'Error: '.$e->getMessage();
}