Php Try/Catch不使用此PDO查询
我有一个脚本,我正在通过用PDO准备的语句和查询替换内联mysql查询来更新它。当查询正确或返回结果时,它工作正常。但是,当查询语句中出现错误时,try/catch无效。例如,我使用了以下测试代码:Php Try/Catch不使用此PDO查询,php,mysql,pdo,Php,Mysql,Pdo,我有一个脚本,我正在通过用PDO准备的语句和查询替换内联mysql查询来更新它。当查询正确或返回结果时,它工作正常。但是,当查询语句中出现错误时,try/catch无效。例如,我使用了以下测试代码: $query = $this->dbh->prepare('SELEC menu_item, hyperlink, admin FROM top_menu;'); try { $query->execute(); $row =
$query = $this->dbh->prepare('SELEC menu_item, hyperlink, admin FROM top_menu;');
try
{
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC));
die("success");
}
catch(Exception $e)
{
die("fail");
}
查询是错误的(“SELEC”而不是“SELECT”),因此脚本流应该放在异常/错误括号中,但它没有;我不断获得“成功”。我尝试了catch(pdotexception$e)而不是catch(Exception$e),得到了完全相同的结果
我做错了什么,我该如何解决?谢谢。对于PDO的fetch(),失败时返回FALSE。没有抛出异常
请参阅:类似的问题已经得到解答,除非您告诉PDO,否则它不会抛出异常。你参加过:
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
在PDO对象上