PDO(PHP 数据对象)提供了与不同数据库系统交互的标准化接口。然而,PHP 开发人员可能不熟悉它的一些功能,从而导致有关准备好的语句和错误处理的常见问题。本文解决了以下常见问题之一:
要解决此问题,必须启用 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中文网其他相关文章!