首頁 >後端開發 >php教程 >儘管設定了錯誤模式,為什麼我的 PDO 錯誤訊息還是空的?

儘管設定了錯誤模式,為什麼我的 PDO 錯誤訊息還是空的?

Patricia Arquette
Patricia Arquette原創
2024-12-18 20:45:14266瀏覽

Why Are My PDO Error Messages Empty Despite Setting Error Modes?

從PDO 擷取錯誤訊息:對不完整回應進行故障排除

使用PDO(PHP 資料物件)時,擷取錯誤訊息可能具有挑戰性。當您將錯誤模式設定為顯示警告或異常,但仍無法提取預期的錯誤訊息時,就會發生此問題。

在提供的範例中,程式碼將錯誤模式設為警告:

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

但是 PDOStatement 和 errorInfo() 的 print_r() 語句傳回空白輸出。若要解決此問題:

  • 驗證本機準備好的語句: MySQL 驅動程式支援本機準備好的語句。確保您的 MySQL 版本相容(4.1 或更高版本)。
  • 覆寫模擬準備: 預設情況下,當 MySQL 報告支援它時,PDO 使用模擬準備語句。如果遇到問題,請嘗試明確設定PDO 驅動程式以使用本機語句:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ATTR_PERSISTENT);
  • 異常處理變更: 發生錯誤時,PDO 可能會引發異常。不要使用警告,而是嘗試將錯誤模式設為異常處理:
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

此變更應該在執行無效的 SQL 查詢時觸發異常,為您提供必要的錯誤資訊。

以上是儘管設定了錯誤模式,為什麼我的 PDO 錯誤訊息還是空的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn