PHP事务回滚模块学习

满足条件

要想实现PHP的事务操作,必须满足以下条件:

(1) 要支持事务操作,表引擎必须是innoDB

(2) 系统是默认提交事务的,因此要关闭自动提交功能

实现步骤

归纳以下几点重要步骤:

(1) 关闭自动提交功能

$mysqli->autocommit(false);

(2) 视情况创建回滚点

$mysqli->savepoint a;

(3) 执行失败则回滚

$mysqli->rollback();

(4) 执行成功则提交

$mysqli->commit();

代码解读

通过一个简单的具体事例读懂事务回滚

<?php

//事务控制,回滚

//创建一个mysqli对象

$mysqli = new MySQLi("主机名""mysql用户名""密码","数据库名");

//判断是否链接成功

if($mysqli->connect_error){

die($mysqli->connect_error);

}

//由于在事务提交中系统默认提交,故这里 设置为FALSE先不提交

$mysqli->autocommit(false);

//其实这里系统已经相当在这里 做个保存点 ,记录此时所有状态,回滚是回滚到这里

//$mysqli->savepoint a;

//写出对数据库的操作语句

$sql1 = "insert into 表名 (字段名) values (对应字段的值)";

$sql2 = "update 表名 set 字段名=where 条件";

$sql3 = "delete from 表名 where 条件";

//执行sql语句

$res1 = $mysqli->query($sql1) or die ($mysqli->error);

$res2 = $mysqli->query($sql2) or die ($mysqli->error);

$res3 = $mysqli->query($sql3) or die ($mysqli->error);

//判断是否都执行成功

if(!$res1||!$res2||!$res3){

// 只要有一条失败便回滚 ,都不执行,若设置滚回点,如a, 则回 滚到a

$mysqli->rollback();

}else{

//一旦提交无法回滚,成功则提交

$mysqli->commit();

}

//关闭资源

$musqli->close();

?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值