解析php mysql 事務(wù)處理回滾操作(附實(shí)例)
很多新手在進(jìn)行項(xiàng)目過程中,會(huì)碰到這樣一種情況,如:論壇扣幣項(xiàng)目中,用戶支付論壇幣的時(shí)候如果突然斷網(wǎng)、電腦死機(jī)、停電、等其它自然災(zāi)害時(shí),導(dǎo)致本次交易沒有成功(即用戶的幣已經(jīng)扣掉了,但是服務(wù)器數(shù)據(jù)庫中沒有消費(fèi)記錄等其它情況),這種情況應(yīng)該怎么樣進(jìn)行處理呢?
在這個(gè)時(shí)候,我們可以用Mysql事務(wù)回滾來進(jìn)行處理,那代碼怎么寫呢?
那下面我就來說一說這個(gè)mysql事務(wù)回滾應(yīng)該怎么處理。
首先MYSQL中只有INNODB和BDB類型的數(shù)據(jù)表才能支持事務(wù)處理!其他的類型是不支持的!
那如果,我們的數(shù)據(jù)表已經(jīng)存在,并且不是上面所說的兩種類型的話,應(yīng)該怎么辦呢?
1、我可以去找一個(gè)叫MySQL-Front的軟件,里面能更改表類型。
2、我們也可以通過SQL語句來更改,sql語句可以這樣寫:
ALTER TABLE TABLENAME type = InnoDB;
將需要修類型的表全更改完成后,我們可以到PHP文件中用代碼進(jìn)行測(cè)試了。
mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");
$sql = "INSERT INTO ...";
$sql2 = "INSERT INTO ...";
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res && $res1){
mysql_query("COMMIT");
echo '提交成功。';
}else{
mysql_query("ROLLBACK");
echo '數(shù)據(jù)回滾。';
}
mysql_query("END");
看到這里,應(yīng)該知道怎么用PHP來處理mysql的事務(wù)回滾了吧。很簡單吧!
- ThinkPHP 3.2.2實(shí)現(xiàn)事務(wù)操作的方法
- Thinkphp事務(wù)操作實(shí)例(推薦)
- thinkPHP5.0框架事務(wù)處理操作簡單示例
- thinkPHP框架中執(zhí)行事務(wù)的方法示例
- ThinkPHP實(shí)現(xiàn)事務(wù)回滾示例代碼
- thinkphp 多表 事務(wù)詳解
- php中在PDO中使用事務(wù)(Transaction)
- php+mysql事務(wù)rollback&commit示例
- PHP中實(shí)現(xiàn)MySQL嵌套事務(wù)的兩種解決方案
- php事務(wù)回滾簡單實(shí)現(xiàn)方法示例
- thinkPHP事務(wù)操作簡單案例分析
相關(guān)文章
EPSON打印機(jī) 連供墨水系統(tǒng) 維修有哪些保養(yǎng)竅門
EPSON打印機(jī) 連供墨水系統(tǒng) 維修有哪些保養(yǎng)竅門...2007-12-12
PHP高級(jí)對(duì)象構(gòu)建 工廠模式的使用
工廠模式包含普通工廠模式和抽象工廠模式,但是,不管是什么工廠模式,它們都是有一個(gè)作用,那就是生成對(duì)象2012-02-02
PHP封裝的數(shù)據(jù)庫模型Model類完整示例【基于PDO】
這篇文章主要介紹了PHP封裝的數(shù)據(jù)庫模型Model類,結(jié)合實(shí)例形式分析了php基于PDO針對(duì)mysql數(shù)據(jù)庫常見增刪改查、統(tǒng)計(jì)、判斷等相關(guān)操作封裝與使用技巧,需要的朋友可以參考下2019-03-03
php根據(jù)某字段對(duì)多維數(shù)組進(jìn)行排序的方法
這篇文章主要介紹了php根據(jù)某字段對(duì)多維數(shù)組進(jìn)行排序的方法,實(shí)例分析了php操作數(shù)組及排序的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
聊聊PHP中require_once()函數(shù)為什么不好用

