91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP中處理PDO錯誤

發布時間:2021-06-07 16:28:08 來源:億速云 閱讀:92 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關如何在PHP中處理PDO錯誤,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

PHP PDO 錯誤與錯誤處理

  • PDO::ERRMODE_SILENT

此為默認模式。 PDO 將只簡單地設置錯誤碼,可使用PDO::errorCode()PDO::errorInfo()方法來檢查語句和數據庫對象。如果錯誤是由于對語句對象的調用而產生的,那么可以調用那個對象的PDOStatement::errorCode()PDOStatement::errorInfo()方法。如果錯誤是由于調用數據庫對象而產生的,那么可以在數據庫對象上調用上述兩個方法。

  • PDO::ERRMODE_WARNING

除設置錯誤碼之外,PDO還將發出一條傳統的E_WARNING信息。如果只是想看看發生了什么問題且不中斷應用程序的流程,那么此設置在調試/測試期間非常有用。

  • PDO::ERRMODE_EXCEPTION

除設置錯誤碼之外,PDO還將拋出一個PDOException異常類并設置它的屬性來反射錯誤碼和錯誤信息。此設置在調試期間也非常有用,因為它會有效地放大腳本中產生錯誤的點,從而可以非常快速地指出代碼中有問題的潛在區域(記住:如果異常導致腳本終止,則事務被自動回滾)。

異常模式另一個非常有用的是,相比傳統 PHP風格的警告,可以更清晰地構建自己的錯誤處理,而且比起靜默模式和顯式地檢查每種數據庫調用的返回值,異常模式需要的代碼/嵌套更少。

創建 PDO 實例并設置錯誤模式

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
  $dbh = new PDO($dsn, $user, $password);
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
}
?>

注意:不管當前是否設置了PDO::ATTR_ERRMODE ,如果連接失敗,PDO::__construct()將總是拋出一個 PDOException 異常。未捕獲異常是致命的。

創建 PDO 實例并在構造函數中設置錯誤模式

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';
/*
  使用 try/catch 圍繞構造函數仍然有效,即使設置了 ERRMODE 為 WARNING,
  因為如果連接失敗,PDO::__construct 將總是拋出一個 PDOException 異常。
*/
try {
  $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
  exit;
}
// 這里將導致 PDO 拋出一個 E_WARNING 級別的錯誤,而不是 一個異常 (當數據表不存在時)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

以上例程會輸出:

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18
add a note add a note

以上就是如何在PHP中處理PDO錯誤,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岑溪市| 泸定县| 恭城| 福建省| 金沙县| 永胜县| 伽师县| 广宁县| 天长市| 泾川县| 望江县| 班玛县| 新密市| 大兴区| 肇庆市| 双柏县| 天镇县| 蒙阴县| 夹江县| 洱源县| 津南区| 辽中县| 乐清市| 新乡市| 织金县| 郁南县| 新田县| 上高县| 竹溪县| 梨树县| 辽宁省| 尉犁县| 兴文县| 平潭县| 石家庄市| 建湖县| 台北县| 三都| 普格县| 赣州市| 弥渡县|