mysql交易處理

來源:互聯網
上載者:User

標籤:

有一張銀行帳號表

create table account(id int primary key,balance float); 現在有一段php程式, 要完成 把 1號 10 元錢,轉到 2號帳號上 事務基本:事務用於保證資料的一致性,它由一組相關的dml語句組成,該組的dml語句要麼全部成功,要麼全部失敗。如:網上轉賬就是典型的要用事務來處理,用以保證資料的一致性  現在我們使用事務來完成上面的代碼 代碼:
 1 <?php 2        3        $mysqli=new MySQLi("localhost","root","hsp123","test"); 4        if($mysqli->connect_error){ 5                6               die($mysqli->connect_error); 7        } 8        9        //將提交設為false[事務一旦提交就沒有機會復原10        $mysqli->autocommit(false);11        //-> savepoint a;會把但前情況記錄12        $sql1="update account set balance=balance-2 where id=1";13        $sql2="update account2 set balance=balance+2 where id=2";14        $b1=$mysqli->query($sql1) ;15        $b2=$mysqli->query($sql2) ;16       17        if(!$b1||!$b2){18               echo "失敗,復原".$mysqli->error;19               //復原!20               $mysqli->rollback();21        }else{22               //提交[一旦提交沒有機會復原23               $mysqli->commit();24        }25        $mysqli->close();26        //顯示控制台27 ?>

? 在mysql控制台可以使用事務來操作,具體步驟如下

 1.      開啟一個事務start transaction2.      做儲存點savepoint 儲存點名稱 3.      操作....4.      可以復原,可以提交4.1    如果沒有問題提交commit4.2    如果你覺得有問題,就復原rollback to 儲存點.       事務的acid特性原子性,一致性,持久性,隔離性.

mysql交易處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.