php PDO異常處理的方法詳解

來源:互聯網
上載者:User
這篇文章主要給大家介紹了php中PDO異常處理的相關內容,文中給大家先進行了簡單的介紹,然後通過執行個體代碼給大家介紹了使用方式,介紹的非常詳細,有需要的朋友們可以參考借鑒,感興趣的朋友們下面來一起學習學習吧。

異常處理:

PHP:預設為直接報錯

MYSQL:預設為靜默模式,錯就錯,不報錯

PDO:預設為靜默模式,錯就錯,不報錯

以前,當PHP碰到錯誤的時候,會直接報錯,錯誤處理會變得相當麻煩。後來,當錯誤發生之後,會將錯誤資訊不再直接輸出,放到一個類的對象裡(PDOException)

pdo異常處理設定:

設定PDO::ATTR_ERRMODE ,有以下三個值:

PDO::ERRMODE_SILENT: 預設模式,不主動報錯,需要主動以 $pdo->errorInfo()的形式擷取錯誤資訊。

PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤,主動報錯

PDO::ERRMODE_EXCEPTION: 主動拋出 exceptions 異常,需要以try{}cath(){}輸出錯誤資訊。

執行個體:

方式一:

<?php//預設是不提示的 需要用 errorCode() errorInfo();try{  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");  //下面這句是預設設定,有無均可  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT);}catch(PDOException $e){  die("資料庫連接失敗".$e->getMessage());}$sql = "insert into stuu values(null,'jike','w',55)";$res = $pdo->exec($sql);if($res){  echo "OK";}else{  echo $pdo->errorCode();  print_r($pdo->errorInfo());}

方式二:

<?phptry{  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");  //主動以警告的形式報錯  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);}catch(PDOException $e){  die("資料庫連接失敗".$e->getMessage());}$sql = "insert into stuu values(null,'jike','w',55)";//若有錯誤直接在瀏覽器頁面中顯示錯誤資訊$res = $pdo->exec($sql);

方式三:

<?phptry{  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");  //主動拋出異常  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );}catch(PDOException $e){  die("資料庫連接失敗".$e->getMessage());}$sql = "insert into stuu values(null,'jike','w',55)";//用try{}catch(){}抓取異常try{  $res = $pdo->exec($sql);}catch(PDOException $e){  echo $e->getMessage();}

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.