PHP+Mysqli 事务处理

MYSQL php

PHP+Mysqli 事务处理

php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值 比如A原来有100元,B也有100元,A向B转账50元,那么就要执行两条SQL语句,一个是A的余额要减50,B的余额要加50, 如果第一条语句成功了,但是第二条语句失败了,那么就会丢失数据了,这个时候就需要事务处理了,有一条错误语句,那么已经执行成功的语句都要回滚,返回失败!

代码

直接看代码吧

//SQL连接
$mysqli = new mysqli('127.0.0.1','root','root','test');//实例化Mysqli对象,参数分别是:数据库主机地址,用户名,密码,数据库名

if (mysqli_connect_errno()) {//判断数据库连接是否错误
    die(mysqli_connect_error());
}
$mysqli->set_charset('utf8');//设置数据库字符集
$mysqli->autocommit(false); // 开始事务

$sql ='...';
$sql .='...';

if($mysqli->multi_query($sql)){//multi_query() 可以同时执行多条SQL语句
    $status_1= $mysqli->affected_rows==1?true:false;//查看第一条SQL语句执行状态
   $mysqli->next_result()//下移指针来查看第二条SQL语句状态
   $ststus__2 = $mysqli->affected_rows==1?true:false;//第二条SQL语句状态

   if($status_1 && $_status_2){//判断两条SQL语句状态,如果都为true,则提交事务,否则回滚
   $mysqli->commit();//提交事务
   }else{
   $mysqli->rollback();//回滚
    }

}
$mysqli->autocommit(true);//关闭事务

$mysqli->close();//关闭SQL连接

本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Mar 31, 2019 at 06:35 pm

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏古时的风筝

我真的不想再用 JPA 了

在开发者的圈子里,没当说到一种技术好或者不好,都会引发激烈或者不激烈的争论,直到一个开发者出来说 PHP 是世界上最好的语言,大家伙儿才会纷纷退去继续写代码。

7620
来自专栏安恒网络空间安全讲武堂

MongoDB操作&&注入漏洞&&未授权访问漏洞

注入不止有传统的SQL数据库,NoSQL型数据库也一样存在注入漏洞,在比赛中跟传统的注入相比也算新题型,不少同学可能还不太了解,本文向大家科普MongoDB数据...

15530
来自专栏函数式编程语言及工具

restapi(6)- do it the functional way, 重温函数式编程

再次看了看上篇博客的源代码,发现连自己都看不懂了。想是为了赶时间交货不知不觉又回到OOP行令模式了,看看下面这段代码:

6830
来自专栏飞总聊IT

系列 | 漫谈数仓第二篇NO.2 数据模型(维度建模)

model对于数仓是最核心的东西,数据模型是数据组织和存储方法,模型的好坏,决定了数仓能支撑企业业务多久。

20120
来自专栏MySQL技术

揭秘MySQL主从数据不一致

目前MySQL数据库最常用的是主从架构,大多数高可用架构也是通过主从架构演变而来。但是主从架构运行时间长久后容易出现数据不一致的情况,比如因从库可写造成的误操作...

9420
来自专栏科研猫

【科研猫·绘图】献礼国庆70年,R语言绘制中国地图

建国70周年大庆即将到来,各行各业都在积极筹备迎接祖国的生日,在这个举国欢腾的时刻,我们决定以一种特殊方式来表达自己对祖国母亲的祝福:一副用R语言绘制的中国地图...

29720
来自专栏函数式编程语言及工具

restapi(5)- rest-mongo 应用实例:分布式图片管理系统之一,rest 服务

最近有同事提起想把网页上的图片存在MongoDB里,我十分赞同。比起把图片以文件形式存放在硬盘子目录的方式,MongoDB有太多的优势。首先,MongoDB...

6930
来自专栏JackieZheng

数据库炸了——是谁动了我的wait_timeout

  我条件反射的回了句那是接口超时,再多试几次(测试环境的性能比较差,尤其是数据库,经常504

9210
来自专栏安恒网络空间安全讲武堂

IDA pro简介

本周分享的工具是IDA Pro 7.0。IDA Pro全称是交互式反汇编器专业版(Interactive Disassembler Professional),...

51920
来自专栏Java帮帮-微信公众号-技术文章全总结

分布式缘何而起?从单兵,到游击队,到集团军

与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。

12020

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励