首页 >后端开发 >php教程 >PDO 查询无提示地失败:如何获取 PDO 错误消息?

PDO 查询无提示地失败:如何获取 PDO 错误消息?

Patricia Arquette
Patricia Arquette原创
2024-12-19 22:11:10786浏览

PDO Query Fails Silently: How Do I Get PDO Error Messages?

有关 PDO 的常见问题:PDO 查询失败和错误处理

PDO(PHP 数据对象)提供了与不同数据库系统交互的标准化接口。然而,PHP 开发人员可能不熟悉它的一些功能,从而导致有关准备好的语句和错误处理的常见问题。本文解决了以下常见问题之一:

PDO 查询失败,但我看不到任何错误。如何从 PDO 获取错误消息?

要解决此问题,必须启用 PDO 的异常处理。默认情况下,PDO 将错误作为常规 PHP 错误处理,但可能不可见。要将错误作为异常处理,请在建立连接时将 PDO ERRMODE 属性设置为 PDO::ERRMODE_EXCEPTION。这允许 PDO 在数据库错误上引发异常,使其可用于错误处理。

以下是设置具有异常处理功能的 PDO 连接的示例:

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    // other options
);
$pdo = new PDO($dsn, $user, $pass, $opt);

使用此设置,所有数据库错误都将作为异常抛出。可以使用 try..catch 块或专用错误处理程序捕获这些异常。未捕获的异常将充当常规 PHP 错误,遵循站点范围的错误报告设置。

确保 PHP 错误可见非常重要。在生产服务器上,建议记录错误而不是将其显示在屏幕上。这可以通过设置来实现:

error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);

在开发服务器上,在屏幕上显示错误可能会更方便:

error_reporting(E_ALL);
ini_set('display_errors', 1);

始终避免使用错误抑制运算符(@ ) 在 PDO 语句之前,因为这可以隐藏重要的错误信息。

以上是PDO 查询无提示地失败:如何获取 PDO 错误消息?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn