首頁 >後端開發 >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