成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? php的PDO事務處理機制實例分析
全站頭部文字 我要出現在這里
php的PDO事務處理機制實例分析 755 2024-01-10   

本文實例講述了php的PDO事務處理機制。分享給大家供大家參考,具體如下:

事務 (Transaction) 是操作數據庫中很重要的一個功能, 它可以讓你預定一條, 或者一系列 SQL 語句, 然后一起執行,并且在執行的過程中, 如果其中的某條執行失敗, 可以回滾所有已更改的操作. 如果執行成功, 那么這一系列操作都會永久有效. 事務很好的解決了在操作數據庫的時候不同步的問題. 同時, 通過事務去執行大數據量的時候, 執行效率可以提高很多很多.

在PDO中同樣可以實現事物處理的功能

1. 開啟事物:beginTransaction()方法

beginTransaction()方法將關閉自動提交(autocommit)模式,直到事物被提交或者回滾以后才恢復

2. 提交事物:commit()方法

commit()方法完成事物的提交操作,成功則返回true,否則返回false。

3. 事物回滾:rollBack()方法

rollBack()方法執行事物的回滾操作。

例如:

$dbms='mysql';//數據庫類型
$dbName='admin';//使用的數據庫
$user='root';//數據庫連接用戶名
$pwd='password';//數據庫連接密碼
$host='localhost';//數據庫主機名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try {
 $pdo = new PDO($dsn, $user, $pwd);//初始化一個PDO對象,就是創建了數據庫連接對象$pdo
 $pdo->beginTransaction();//開啟事物
 $query = "insert into user (username,password) values('admin','123456')";//需要執行的sql語句
 $res = $pdo->prepare($query);
 if ($res->execute()) {
  echo "數據添加成功";
 }else{
  echo "數據添加失敗";
 }
 $pdo->commit();//執行事物的提交操作
}catch(PDOException $e){
 die("Error!: ".$e->getMessage().'<br>');
 $pdo->rollBack();//執行事物的回滾操作
}

補充:

數據庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要么完全地執行,要么完全地不執行。

事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單 元,可以簡化錯誤恢復并使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。

事務是數據庫運行中的一個邏輯工作單位,由DBMS中的事務管理子系統負責事務的處理。

相關屬性:

① 原子性(Atomic)(Atomicity)

事務必須是原子工作單元;對于其數據修改,要么全都執行,要么全都不執行。通常,與某個事務關聯的操作具有共同的目標,并且是相互依賴的。如果系統只執行這些操作的一個子集,則可能會破壞事務的總體目標。原子性消除了系統處理操作子集的可能性。

② 一致性(Consistent)(Consistency)

事務在完成時,必須使所有的數據都保持一致狀態。在相關數據庫中,所有規則都必須應用于事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數 據結構(如 B 樹索引或雙向鏈表)都必須是正確的。某些維護一致性的責任由應用程序開發人員承擔,他們必須確保應用程序已強制所有已知的完整性約束。例如,當開發用于轉 帳的應用程序時,應避免在轉帳過程中任意移動小數點。

③ 隔離性(Insulation)(Isolation)

由并發事務所作的修 改必須與任何其它并發事務所作的修改隔離。事務查看數據時數據所處的狀態,要么是另一并發事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不 會查看中間狀態的數據。這稱為隔離性,因為它能夠重新裝載起始數據,并且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。當事務可序列化 時將獲得最高的隔離級別。在此級別上,從一組可并行執行的事務獲得的結果與通過連續運行每個事務所獲得的結果相同。由于高度隔離會限制可并行執行的事務 數,所以一些應用程序降低隔離級別以換取更大的吞吐量。

④ 持久性(Duration)(Durability)

事務完成之后,它對于系統的影響是永久性的。該修改即使出現致命的系統故障也將一直保持。

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

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



主站蜘蛛池模板: 97cao| 欧洲精品一区二区三区 | 日韩一区二区不卡 | 亚洲免费在线视频 | 国内精品一区二区三区 | 婷婷午夜天 | 成人一区二区在线 | 久久日av| 亚洲天堂影院 | 一区二区三区不卡视频 | 视频一区二区三区在线观看 | 欧美啪啪网站 | 成人免费毛片嘿嘿连载视频 | 国产一区二区三区免费播放 | 一区二区三区四区在线视频 | h片在线免费观看 | 久久精品视频网 | 国产麻豆一区二区 | 久久久久久网 | 日本国产在线观看 | 欧美日韩国产一区 | 久久精品导航 | 91精品国产综合久久久久久 | 日本成人免费 | 国产伦精品一区二区三区视频网站 | 麻豆成人免费视频 | 国产成人精品一区二区三区在线 | 日本a网站 | 亚洲精品一区二三区不卡 | 成人福利视频在线观看 | 日本激情网| 国产欧美日韩一区二区三区 | 亚洲国产免费 | 两性免费视频 | 日韩欧美综合 | 国产伦精品一区二区三区视频黑人 | 日本三级香港三级 | 在线免费看黄色 | 日本高清www| 国产天堂网| 天天干天天操天天爽 |

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103