MySqli事务控制

Posted t-young1201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySqli事务控制相关的知识,希望对你有一定的参考价值。

事务就是将多个逻辑工作组合成一个执行单元的数据库操作(一起成功|一起失败)

注:数据库的存储引擎必须为InnoDB

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $mysqli=new mysqli(‘localhost‘,‘root‘,‘‘,‘test‘);
  $mysqli->query(‘set names utf8‘); 

  $mysqli->autocommit(false); //开启事务 存储引擎:InnoDB
  $sql1="UPDATE users SET money=money-10 where id=1"; 
  $sql2="UPDATE users SET money=money+10 where id=100";
  $mysqli->query($sql1);
  $res1=$mysqli->affected_rows;
  $mysqli->query($sql2);
  $res2=$mysqli->affected_rows;
  if ($res1>0 && $res2>0) {
    $mysqli->commit(); //事务提交
    echo ‘操作成功‘;
  }else {
    $mysqli->rollback(); //事务回滚
    echo ‘操作失败‘;
  }
  
 ?>

 

以上是关于MySqli事务控制的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的MySQLi扩展学习mysqli的事务与预处理语句

PHPmysqli扩展整理,包括面向过程和面向对象的比较事务控制批量执行预处理

PHP MySQL 事务捕获错误

如何在 mysqli 中开始和结束事务?

MySQLi面向过程实践---事务处理

PHP mysqli_multi_query 在while循环中的事务