php+mysqli事務控制實現(xiàn)銀行轉(zhuǎn)賬實例
本文實例講述了php+mysqli事務控制實現(xiàn)銀行轉(zhuǎn)賬的方法。分享給大家供大家參考。具體分析如下:
事務控制,也就是說所有的語句執(zhí)行成功后,才會提交。否則,如果前面有語句執(zhí)行成功,而后面沒有執(zhí)行成功,則回滾到執(zhí)行之前的狀態(tài)。通過銀行轉(zhuǎn)賬的案例來說明這個應用。一個賬號轉(zhuǎn)了錢出去,另一個賬號必須有錢轉(zhuǎn)入,這樣才算成功。
代碼如下:
<?php //1、創(chuàng)建數(shù)據(jù)庫連接對象 $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_error){ die($mysqli->connect_error); } $mysqli->query("set names 'GBK'"); $mysqli->autocommit(false); //首先設置autocommit為false,也就是不自動提交 $sql1 = "update account set balance=balance-2 where id=1;"; $sql2 = "update account set balance=balance+2 where id=2;"; $res1 =$mysqli->query($sql1) or die($mysqli->error); $res2 =$mysqli->query($sql2) or die($mysqli->error); if(!$res1 || !$res2){ echo "轉(zhuǎn)賬失敗"; $mysqli->rollback();//如果有一條不成功,則回滾 }else{ $mysqli->commit();//兩條語句都執(zhí)行成功,則提交 echo "轉(zhuǎn)賬成功"; } ?>
希望本文所述對大家的php程序設計有所幫助。
相關文章
php使用explode()函數(shù)將字符串拆分成數(shù)組的方法
這篇文章主要介紹了php使用explode()函數(shù)將字符串拆分成數(shù)組的方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02通過緩存數(shù)據(jù)庫結(jié)果提高PHP性能的原理介紹
眾所周知,緩存數(shù)據(jù)庫查詢的結(jié)果可以顯著縮短腳本執(zhí)行時間,并最大限度地減少數(shù)據(jù)庫服務器上的負載。如果要處理的數(shù)據(jù)基本上是靜態(tài)的,則該技術將非常有效。這是因為對遠程數(shù)據(jù)庫的許多數(shù)據(jù)請求最終可以從本地緩存得到滿足,從而不必連接到數(shù)據(jù)庫、執(zhí)行查詢以及獲取結(jié)果2012-09-09php實現(xiàn)保存submit內(nèi)容之后禁止刷新
這篇文章主要介紹了php保存submit內(nèi)容之后禁止刷新的具體實現(xiàn),需要的朋友可以參考下2014-03-03php數(shù)組函數(shù)序列之a(chǎn)rray_key_exists() - 查找數(shù)組鍵名是否存在
array_key_exists() 函數(shù)判斷某個數(shù)組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false2011-10-10