首页 > 代码库 > mysql事务处理
mysql事务处理
有一张银行账号表
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 transaction
2. 做保存点
savepoint 保存点名称
3. 操作....
4. 可以回滚,可以提交
4.1 如果没有问题提交
commit
4.2 如果你觉得有问题,就回滚
rollback to 保存点.
事务的acid特性
原子性,一致性,持久性,隔离性.
mysql事务处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。