国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP的PDO錯誤與錯誤處理

2024-05-05 00:06:21
字體:
來源:轉載
供稿:網友

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 库伦旗| 保德县| 嫩江县| 洪雅县| 田东县| 察哈| 华宁县| 自治县| 亳州市| 名山县| 增城市| 昌宁县| 西贡区| 凌海市| 杭州市| 临安市| 永春县| 金门县| 深泽县| 巫山县| 大城县| 安化县| 浮山县| 逊克县| 嘉兴市| 深水埗区| 达拉特旗| 安徽省| 济南市| 八宿县| 江城| 平邑县| 大厂| 开封县| 九江市| 东兰县| 泸州市| 酒泉市| 科技| 西藏| 阿图什市|