如何使用 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!
如何确定获取"false"结果是错误或空结果?
如果出现错误,则PDO将抛出一个可以捕获的异常。用 try catch 包装您的代码,这应该会捕获任何异常。
try {
$rs = $db->prepare('SELECT * FROM foo');
$rs->execute();
$foo = $rs->fetchAll();
} catch (Exception $e) {
echo 'Error: '.$e->getMessage();
}