亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP數據庫抽象層之PDO(五)——錯誤與錯誤處理

瀏覽:2日期:2022-09-15 16:12:06

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 使用 SQL-92 SQLSTATE 來規范錯誤碼字符串;不同 PDO 驅動程序負責將它們的本地代碼映射為適當的 SQLSTATE 代碼。?PDO::errorCode()?方法返回一個單獨的 SQLSTATE 碼。如果需要更多此錯誤的細節信息,PDO 還提供了一個?PDO::errorInfo()?方法來返回一個包含 SQLSTATE 碼、特定驅動錯誤碼以及此驅動的錯誤字符串的數組。

Example #1 創建 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?異常。未捕獲異常是致命的。

Example #2 創建 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

標簽: PHP
相關文章:
主站蜘蛛池模板: 成人性色生活片免费看爆迷你毛片 | 岛国a级片 | 精品一区二区三区影院在线午夜 | 中文字幕久久乱码一区二区 | 亚洲综合欧美色综合小说 | 91.久久| 亚洲免费人成在线视频观看 | 亚洲一二三区久久五月天婷婷 | 久久亚洲精品一区二区三区浴池 | 12306播播影院午夜片在线观看 | 免费欧美日韩 | 国产专区在线播放 | 成人影院欧美大片免费看 | 国产美女一级高清免费观看 | 欧美另类亚洲一区二区 | 免费毛片视频 | 免费无遮挡嘿嘿嘿视频动态 | 污污网站免费 | japanxxxx日本中文字幕 | 美国一级大黄大黄大色毛片a | 欧美日韩亚洲国产一区二区综合 | 99热官网 | 国产精品视频在线免费观看 | 成人在线观看视频免费 | 色一伦一情一区二区三区 | 青青青青啪视频在线观看 | 91精品国产亚洲爽啪在线观看 | 道日本一本草久 | 永久免费aavv视频播放 | 日本成人一区二区 | 国产成在线观看免费视频成本人 | 深夜释放自己黄瓜视频 | 精品一区二区三区中文 | 久久婷婷色香五月综合激情 | 青青草a国产免费观看 | 麻豆中文字幕 | 久久不卡免费视频 | 欧美国产成人精品一区二区三区 | 深夜国产一区二区三区在线看 | 国产呦系列 欧美呦 日韩呦 | 亚洲 欧美 国产 中文 |