如何使用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”结果是错误还是空结果?
答案 0 :(得分:0)
如果出现错误,PDO将抛出一个您可以捕获的异常。用try catch包装你的代码,它应该捕获任何异常。
try {
$rs = $db->prepare('SELECT * FROM foo');
$rs->execute();
$foo = $rs->fetchAll();
} catch (Exception $e) {
echo 'Error: '.$e->getMessage();
}