mysql 事务处理
start TRANSACTION;? //事務處理開始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
COMMIT;//事務處理結束
start TRANSACTION;//事務處理開始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
ROLLBACK;//事務處理回滾
alter table a change money money int UNSIGNED;//改變表MONEY為無負號
------------
實例1
?
<?php
$conn=mysql_connect('localhost','root','yourpassword')or die(mysql_error());
mysql_select_db('transaction',$conn);
mysql_query('set names utf8');
//創建事務
mysql_query('START TRANSACTION') or die(mysql_error());
$sqlA="update A set account=account-1";
if(!mysql_query($sqlA)){
mysql_query('ROLLBACK') or exit(mysql_error());//判斷當執行失敗時回滾
?? exit();
}
$sqlB="update B set account=account+1";
if(!mysql_query($sqlB)){
mysql_query('ROLLBACK') or exit(mysql_error());//判斷當執行失敗時回滾
?? exit();
}
mysql_query('COMMIT')or die(mysql_error());//執行事務
mysql_close($conn);
?>
實例2
-----------------------
php代碼實現事務的處理可以通過PHP預定義類mysqli的以下方法實現。
autocommit(boolean):該方法用于限定查詢結果是否自動提交,如果該方法的參數為true則自動提交,如果參數為false則關閉自動提交。MySQL數據庫默認為自動提交。
rollback():利用mysqli類中的該方法可以實現事務的回滾。
commit():利用該方法可以實現提交所有查詢。
?
| ?代碼如下 | 復制代碼 |
| <?php $id=$_GET[id]; | |
轉載于:https://www.cnblogs.com/bk7788/p/6512720.html
總結
以上是生活随笔為你收集整理的mysql 事务处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A+B 问题
- 下一篇: 自动生成Hibernate框架结构