婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP使用pdo實現事務處理操作示例

PHP使用pdo實現事務處理操作示例

熱門標簽:企業400電話辦理多少費用 神龍斗士電話機器人 萍鄉商鋪地圖標注 宿州正規外呼系統軟件 合肥企業外呼系統線路 電信外呼系統多少錢一個月 桂陽公司如何做地圖標注 代理打電話機器人 太原400電話申請流程

本文實例講述了PHP使用pdo實現事務處理操作。分享給大家供大家參考,具體如下:

使用事務的好處:

舉個例子:銀行用戶A向用戶B轉賬100元,這個操作被分為兩個步驟:

(1)A的賬戶余額被扣去100。

(2)B的賬戶余額增加100。

如果不使用事務的話,假設(1)執行成功了,而(2)失敗了,那用戶B沒有收到應收款項,而用戶A就白白受了損失。

使用事務之后,不論(1)或者(2)哪一步失敗,都可以回滾,即雙方的賬戶余額恢復到之前的狀態。

不是所有的數據庫都提供了對事務的支持,如mysql中的 Myisam 引擎不支持事務,但新版本默認使用的 innoDB 引擎提供了對事務的支持。(RDBMS大部分支持事務,NoSQL數據庫一般不支持事務)

下面來看具體的代碼:

?php
$dsn   = "mysql:dbname=pdo;host=localhost";
$user   = "root";
$password = "root";
$dbh   = new PDO($dsn, $user, $password);
//使用事務之前,要先關閉自動提交。不關閉的話,出現異常的時候沒法回滾。
//據手冊描述,ATTR_AUTOCOMMIT屬性只在mysql,OCI(oracle),firebird三種數據庫中可用
$dbh->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);
$cash = 100;
try {
  $dbh->beginTransaction();
  //用戶A賬戶扣除100
  $sqlcmd    = "update transaction set useraccount=useraccount - {$cash} where username ='A'";
  $affected_rows = $dbh->exec($sqlcmd);
  if ($affected_rows > 0) {
    echo "用戶A賬戶扣除成功" . "br>";
  } else {
    throw new Exception("用戶A賬戶扣除失敗");
  }
  //用戶B賬戶增加100
  $affected_rows = $dbh->exec("update transaction set useraccount=useraccount+{$cash} where username ='B'");
  if ($affected_rows > 0) {
    echo "用戶B賬戶增加成功" . "br>";
  } else {
    throw new Exception("用戶B賬戶增加失敗");
  }
  echo "轉賬成功";
  //若前面兩個步驟都成功,則提交事務
  $dbh->commit();
}
catch (PDOException $e) //若前面兩個步驟中出現了異常,則回滾
  {
  echo $e->getMessage();
  $dbh->rollback();
}
//對事物的使用結束之后,重新開啟自動提交
$dbh->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);
?>

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基于pdo操作數據庫技巧總結》、《php+Oracle數據庫程序設計技巧總結》、《PHP+MongoDB數據庫操作技巧大全》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php PDO異常處理詳解
  • PHP中PDO的錯誤處理
  • php_pdo 預處理語句詳解
  • PHP中PDO的事務處理分析
  • php的PDO事務處理機制實例分析
  • PHP中PDO事務處理操作示例
  • php實現基于PDO的預處理示例
  • PHP的異常處理類Exception的使用及說明
  • PHP如何拋出異常處理錯誤
  • php實現的PDO異常處理操作分析

標簽:崇左 白銀 鄂州 衡陽 廊坊 綏化 辛集 太原

巨人網絡通訊聲明:本文標題《PHP使用pdo實現事務處理操作示例》,本文關鍵詞  PHP,使用,pdo,實現,事務處理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP使用pdo實現事務處理操作示例》相關的同類信息!
  • 本頁收集關于PHP使用pdo實現事務處理操作示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阳泉市| 常山县| 崇左市| 海安县| 梁山县| 自治县| 宾阳县| 新疆| 修文县| 新巴尔虎左旗| 和政县| 馆陶县| 南乐县| 大理市| 穆棱市| 瑞昌市| 黄平县| 栾川县| 城固县| 漾濞| 揭阳市| 施甸县| 怀柔区| 永靖县| 勐海县| 鄂尔多斯市| 泉州市| 墨脱县| 开化县| 巴彦淖尔市| 保靖县| 吉木乃县| 武定县| 淄博市| 兴义市| 察哈| 饶河县| 台北县| 漠河县| 乳山市| 东城区|