《PHP學(xué)習(xí):PHP操作MySQL事務(wù)實(shí)例》要點(diǎn):
本文介紹了PHP學(xué)習(xí):PHP操作MySQL事務(wù)實(shí)例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP實(shí)例本文實(shí)例講述了PHP操作MySQL事務(wù)的辦法,分享給大家供大家參考.具體辦法如下:
PHP實(shí)例一般來(lái)說(shuō),事務(wù)都應(yīng)該具備ACID特征.所謂ACID是Atomic(原子性),Consistent(一致性),Isolated(隔離性),Durable(持續(xù)性)四個(gè)詞的首字母所寫(xiě),下面以“銀行轉(zhuǎn)帳”為例來(lái)分別說(shuō)明一下它們的含義:
PHP實(shí)例① 原子性:組成事務(wù)處理的語(yǔ)句形成了一個(gè)邏輯單元,不能只執(zhí)行其中的一部分.換句話說(shuō),事務(wù)是不可分割的最小單元.比如:銀行轉(zhuǎn)帳過(guò)程中,必須同時(shí)從一個(gè)帳戶(hù)減去轉(zhuǎn)帳金額,并加到另一個(gè)帳戶(hù)中,只改變一個(gè)帳戶(hù)是不合理的.
② 一致性:在事務(wù)處理執(zhí)行前后,數(shù)據(jù)庫(kù)是一致的.也就是說(shuō),事務(wù)應(yīng)該正確的轉(zhuǎn)換系統(tǒng)狀態(tài).比如:銀行轉(zhuǎn)帳過(guò)程中,要么轉(zhuǎn)帳金額從一個(gè)帳戶(hù)轉(zhuǎn)入另一個(gè)帳戶(hù),要么兩個(gè)帳戶(hù)都不變,沒(méi)有其他的情況.
③ 隔離性:一個(gè)事務(wù)處理對(duì)另一個(gè)事務(wù)處理沒(méi)有影響.就是說(shuō)任何事務(wù)都不可能看到一個(gè)處在不完整狀態(tài)下的事務(wù).比如說(shuō),銀行轉(zhuǎn)帳過(guò)程中,在轉(zhuǎn)帳事務(wù)沒(méi)有提交之前,另一個(gè)轉(zhuǎn)帳事務(wù)只能處于等待狀態(tài).
④ 持續(xù)性:事務(wù)處理的效果能夠被永久保存下來(lái).反過(guò)來(lái)說(shuō),事務(wù)應(yīng)當(dāng)能夠承受所有的失敗,包括服務(wù)器、進(jìn)程、通信以及媒體失敗等等.比如:銀行轉(zhuǎn)帳過(guò)程中,轉(zhuǎn)帳后帳戶(hù)的狀態(tài)要能被保存下來(lái).
PHP實(shí)例在PHP中,mysqli 已經(jīng)很好的封裝了mysql事務(wù)的相關(guān)操作.如下示例:
PHP實(shí)例在這里要注意:
PHP實(shí)例MyISAM:不支持事務(wù),用于只讀程序提高性能
InnoDB:支持ACID事務(wù)、行級(jí)鎖、并發(fā)
Berkeley DB:支持事務(wù)
PHP實(shí)例希望本文所述對(duì)大家的PHP+MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所贊助.
歡迎參與《PHP學(xué)習(xí):PHP操作MySQL事務(wù)實(shí)例》討論,分享您的想法,維易PHP學(xué)院為您提供專(zhuān)業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14222.html