php 操作MySQL事務實例程式碼
MySQL 事務主要用於處理操作量大,複雜度高的資料。比如說,在人員管理系統中,你刪除一個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操作語句就構成一個事務!
這篇文章主要介紹了PHP操作MySQL事務的方法,以實例的形式較為詳細的分析了ACID特徵,具有不錯的參考借鑒價值,需要的朋友可以參考下
本文實例講述了PHP操作MySQL事務的方法,並分享給大家供大家參考。具體方法如下:
一般來說,事務都應該具備ACID特質。所謂ACID是Atomic(原子性),Consistent(一致性),Isolated(隔離性),Durable(持續性)四個字的首字母所寫,下面以“銀行轉帳”為例來分別說明一下它們的含義:
① 原子性:組成事務處理的語句形成了一個邏輯單元,不能只執行其中的一部分。換句話說,事務是不可分割的最小單元。例如:銀行轉帳過程中,必須同時從一個帳戶減去轉帳金額,並加到另一個帳戶中,只改變一個帳戶是不合理的。
② 一致性:在交易處理執行前後,資料庫是一致的。也就是說,事務應該是正確的轉換系統狀態。例如:銀行轉帳過程中,要嘛轉帳金額從一個帳戶轉入另一個帳戶,要嘛兩個帳戶都不變,沒有其他的情況。
③ 隔離性:一個事務處理對另一個事務處理沒有影響。就是說任何事務都不可能看到一個處在不完整狀態下的事務。比方說,銀行轉帳過程中,在轉帳事務沒有提交之前,另一個轉帳事務只能處於等待狀態。
④ 持續性:事務處理的效果能夠永久保存下來。反過來說,事務應能承受所有的失敗,包括伺服器、流程、通訊以及媒體失敗等等。例如:銀行轉帳過程中,轉帳後帳戶的狀態要能被保存下來。
在PHP中,mysqli 已經很好的封裝了mysql事務的相關操作。如下範例:
程式碼如下:
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $mysqli = new mysqli('localhost','root','','DB_Lib2Test'); $mysqli->autocommit(false);//开始事物 $mysqli->query($sql1); $mysqli->query($sql2); if(!$mysqli->errno){ $mysqli->commit(); echo 'ok'; }else{ echo 'err'; $mysqli->rollback(); }
在這裡,我們再使用 php mysql 系列函數執行交易。
程式碼如下:
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $conn = mysql_connect('localhost','root',''); mysql_select_db('DB_Lib2Test'); mysql_query('start transaction'); //mysql_query('SET autocommit=0'); mysql_query($sql1); mysql_query($sql2); if(mysql_errno ()){ mysql_query('rollback'); echo 'err'; }else{ mysql_query('commit'); echo 'ok'; } // mysql_query('SET autocommit=1'); // mysql_query($sql3);
在這裡要注意:
MyISAM:不支援事務,用於唯讀程式提高效能
InnoDB :支援ACID事務、行級鎖定、並發
Berkeley DB:支援事務
以上是php 操作MySQL事務實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發
