濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > php實(shí)現(xiàn)的PDO異常處理操作分析

php實(shí)現(xiàn)的PDO異常處理操作分析

熱門(mén)標(biāo)簽:兼職做地圖標(biāo)注好賺錢(qián)嗎 山東電銷卡外呼系統(tǒng)原理是什么 海南外呼系統(tǒng)方案 打開(kāi)百度地圖標(biāo)注 400 電話 辦理 亳州企業(yè)外呼系統(tǒng) 智能電銷語(yǔ)音機(jī)器人資訊 蘇州外呼系統(tǒng)有效果嗎 地圖標(biāo)注怎么做商戶驗(yàn)證

本文實(shí)例講述了php實(shí)現(xiàn)的PDO異常處理操作。分享給大家供大家參考,具體如下:

異常處理:

PHP:默認(rèn)為直接報(bào)錯(cuò)

MYSQL:默認(rèn)為靜默模式,錯(cuò)就錯(cuò),不報(bào)錯(cuò)

PDO:默認(rèn)為靜默模式,錯(cuò)就錯(cuò),不報(bào)錯(cuò)

以前,當(dāng)PHP碰到錯(cuò)誤的時(shí)候,會(huì)直接報(bào)錯(cuò),錯(cuò)誤處理會(huì)變得相當(dāng)麻煩。后來(lái),當(dāng)錯(cuò)誤發(fā)生之后,會(huì)將錯(cuò)誤信息不再直接輸出,放到一個(gè)類的對(duì)象里(PDOException)

要使用PDO異常處理,必須滿足兩個(gè)條件

1、需要將錯(cuò)誤處理模式變成異常模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

2、所有可能出錯(cuò)的語(yǔ)句都必須放到錯(cuò)誤捕捉語(yǔ)句塊里

try{
   //錯(cuò)誤捕捉語(yǔ)句塊
   //凡是有可能出現(xiàn)錯(cuò)誤的語(yǔ)句都放在這
   //一旦出錯(cuò)會(huì)立即進(jìn)入catch語(yǔ)句,把所有的錯(cuò)誤信息放到PDOexception $e里面
}catch(PDOExecption $e){
   //將錯(cuò)誤信息進(jìn)行處理
}

例如:

try{
  //連接認(rèn)證
  $pdo = new PDO('mysql:host=localhost;dbname=project','root','root');
  //設(shè)置錯(cuò)誤處理模式
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  //組織SQL
  $sql= "update pro_student set s_age = 123 where s_id = 20";
  $res = $pdo->exec($sql);
}catch(PDOException $e){
  //var_dump($e);
  //告訴用戶在哪個(gè)文件的哪一行出現(xiàn)了什么樣的錯(cuò)誤
  echo '出現(xiàn)異常:br/>';
  echo '錯(cuò)誤出現(xiàn)的位置:' . $e->getFile() . $e->getLine() . 'br/>';
  echo '錯(cuò)誤原因:' . $e->getMessage();
  var_dump($e->getTrace());//獲取完整的錯(cuò)誤數(shù)據(jù)
  exit;
}

有的時(shí)候,如果數(shù)據(jù)執(zhí)行沒(méi)有任何錯(cuò)誤,但是就是不符合指定的業(yè)務(wù)邏輯。一旦出現(xiàn)業(yè)務(wù)邏輯錯(cuò)誤,異常是沒(méi)有辦法捕捉(異常只捕捉語(yǔ)法錯(cuò)誤),一般認(rèn)為的去通過(guò)判斷語(yǔ)句的執(zhí)行(結(jié)果),主動(dòng)拋出異常,從而結(jié)束錯(cuò)誤程序的運(yùn)行。

語(yǔ)法:throw new PDOException;

$sql = "select * from pro_student where s_id = 20";
$stmt = $pdo->query($sql);
if($stmt->fetchColumn(4) > 100) throw new PDOException; //拋出異常,立馬跳轉(zhuǎn)到catch語(yǔ)句塊
else{
  echo '沒(méi)有問(wèn)題';
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫(kù)操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP異常類及異常處理操作實(shí)例詳解
  • 關(guān)于ThinkPHP中的異常處理詳解
  • 基于PHP7錯(cuò)誤處理與異常處理方法(詳解)
  • PHP中常見(jiàn)的錯(cuò)誤與異常處理總結(jié)大全
  • PHP異常處理定義與使用方法分析
  • php異常處理捕獲錯(cuò)誤整理

標(biāo)簽:紹興 安康 萊蕪 呼倫貝爾 金華 溫州 清遠(yuǎn) 綏化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php實(shí)現(xiàn)的PDO異常處理操作分析》,本文關(guān)鍵詞  php,實(shí)現(xiàn),的,PDO,異常,處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php實(shí)現(xiàn)的PDO異常處理操作分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于php實(shí)現(xiàn)的PDO異常處理操作分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    大荔县| 阿拉善右旗| 乌拉特后旗| 建湖县| 商南县| 芜湖县| 斗六市| 奉节县| 句容市| 河东区| 文水县| 龙泉市| 大悟县| 灵山县| 和田县| 寿阳县| 浏阳市| 大港区| 务川| 石泉县| 泸水县| 深圳市| 穆棱市| 屏边| 兴海县| 延吉市| 松江区| 大田县| 房产| 鲁甸县| 谷城县| 黄石市| 鱼台县| 平乡县| 安顺市| 额尔古纳市| 务川| 公安县| 台东县| 洮南市| 凤翔县|