前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP+Mysqli 事务处理

PHP+Mysqli 事务处理

作者头像
Alone88
发布2019-10-22 17:02:47
1K0
发布2019-10-22 17:02:47
举报
文章被收录于专栏:Alone88

MYSQL php

PHP+Mysqli 事务处理

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

代码

直接看代码吧

代码语言:javascript
复制
//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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP+Mysqli 事务处理
  • 代码
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档