2

如何使用 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,状态为真,因为没有错误。然后我获取结果,在这种特定情况下,不存在 id = 432 的行。所以 fetch 方法返回 false。我的问题是 fetch 方法在出现错误时也会返回 false!。

如何确定 fetch "false" 结果是错误还是空结果?

4

1 回答 1

0

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

try {
    $rs = $db->prepare('SELECT * FROM foo');
    $rs->execute();
    $foo = $rs->fetchAll();
} catch (Exception $e) {
    echo 'Error: '.$e->getMessage();
}
于 2012-04-13T17:15:03.220 回答