mysql 事务处理
start TRANSACTION;? //事務(wù)處理開始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
COMMIT;//事務(wù)處理結(jié)束
start TRANSACTION;//事務(wù)處理開始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
ROLLBACK;//事務(wù)處理回滾
alter table a change money money int UNSIGNED;//改變表MONEY為無負(fù)號(hào)
------------
實(shí)例1
?
<?php
$conn=mysql_connect('localhost','root','yourpassword')or die(mysql_error());
mysql_select_db('transaction',$conn);
mysql_query('set names utf8');
//創(chuàng)建事務(wù)
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());//判斷當(dāng)執(zhí)行失敗時(shí)回滾
?? exit();
}
$sqlB="update B set account=account+1";
if(!mysql_query($sqlB)){
mysql_query('ROLLBACK') or exit(mysql_error());//判斷當(dāng)執(zhí)行失敗時(shí)回滾
?? exit();
}
mysql_query('COMMIT')or die(mysql_error());//執(zhí)行事務(wù)
mysql_close($conn);
?>
實(shí)例2
-----------------------
php代碼實(shí)現(xiàn)事務(wù)的處理可以通過PHP預(yù)定義類mysqli的以下方法實(shí)現(xiàn)。
autocommit(boolean):該方法用于限定查詢結(jié)果是否自動(dòng)提交,如果該方法的參數(shù)為true則自動(dòng)提交,如果參數(shù)為false則關(guān)閉自動(dòng)提交。MySQL數(shù)據(jù)庫默認(rèn)為自動(dòng)提交。
rollback():利用mysqli類中的該方法可以實(shí)現(xiàn)事務(wù)的回滾。
commit():利用該方法可以實(shí)現(xiàn)提交所有查詢。
?
| ?代碼如下 | 復(fù)制代碼 |
| <?php $id=$_GET[id]; | |
轉(zhuǎn)載于:https://www.cnblogs.com/bk7788/p/6512720.html
總結(jié)
以上是生活随笔為你收集整理的mysql 事务处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A+B 问题
- 下一篇: Mysql 查看、创建、更改 数据库和表