這篇文章主要介紹了php+mysqli事務控制實現銀行轉賬,實例分析了事物控制的原理與事物回滾的使用技巧,需要的朋友可以參考下
本文實例講述了php+mysqli事務控制實現銀行轉賬的方法。分享給大家供大家參考。具體分析如下:
事務控制,也就是說所有的語句執行成功后,才會提交。否則,如果前面有語句執行成功,而后面沒有執行成功,則回滾到執行之前的狀態。通過銀行轉賬的案例來說明這個應用。一個賬號轉了錢出去,另一個賬號必須有錢轉入,這樣才算成功。
代碼如下:
- <?php
- //1、創建數據庫連接對象
- $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 "轉賬失敗";
- $mysqli->rollback();//如果有一條不成功,則回滾
- }else{
- $mysqli->commit();//兩條語句都執行成功,則提交
- echo "轉賬成功";
- }
- ?>
希望本文所述對大家的php程序設計有所幫助。
新聞熱點
疑難解答