有什么方法可以使PDO异常在默认情况下被捕获?

时间:2019-01-25 02:56:01

标签: php mysql exception pdo fatal-error

我在Web应用程序上使用PDO。我使用此简单代码来确保查询成功执行并在失败时处理错误

$stmt = // MySQL query;

if($stmt->execute()){
   // Do something
} else {
   // Handle the error
   echo 'some error';
}

它不起作用,因为任何PDO未捕获的异常(例如(重复的输入主键)都是致命错误),因此PHP脚本停止执行。我知道TRY / CATCH解决了这种情况,但是我有很多查询,在每个查询上使用try / catch会花费很长时间。

我的问题

是否有任何方法可以使PDO异常在默认情况下被捕获,以便在我的Web应用程序中进行泛化?

1 个答案:

答案 0 :(得分:0)

在阅读本文之后,我发现了无需使用try / catch即可处理PDO未捕获异常的最佳实践

What-is-SetAttribute-PDO-ATTR_ERRMODE ?

1-SET属性PDO::ATTR_ERRMODE -----> PDO::ERRMODE_WARNING

PDO::ERRMODE_WARNING  // issue warning and continue executing the script

2-检查您的Apache的错误日志文件以确定错误

IMP注意:

  • 仅当您已经通过代码处理错误时(例如,将php文件名和错误行存储在数据库中),才可以执行此操作。
  • 您可以使用功能error_reporting()
  • 处理警告