PDO 参考:解决常见数据库连接错误
简介
PDO(PHP 数据对象) )提供了强大的数据库交互,但由于其特定功能,用户经常遇到错误。本文旨在解决最普遍的问题之一:在 PDO 查询期间无法检索错误消息。
查询失败且没有错误消息
当 PDO 查询时失败时,错误消息可能不会立即显现出来。要启用错误可见性,必须将 PDO 错误模式设置为 PDO::ERRMODE_EXCEPTION。异常提供堆栈跟踪,可以使用 try..catch 块进行处理。
示例:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]; $pdo = new PDO($dsn, $user, $pass, $opt);
显示错误
此外,必须配置错误报告设置才能显示错误。对于实时站点,启用错误日志记录,而对于本地开发,错误可以显示在屏幕上:
实时站点:
error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1);
本地开发:
error_reporting(E_ALL); ini_set('display_errors', 1);
避免错误抑制
永远不要在 PDO 语句之前使用错误抑制运算符 (@)。
避免不必要的 try..catch 块
未捕获的异常提供有价值的错误信息,无需自定义错误处理。仅在处理错误时使用 try..catch,例如回滚事务。
以上是为什么我的 PDO 查询不显示错误消息?的详细内容。更多信息请关注PHP中文网其他相关文章!