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中文網其他相關文章!