• MySQL事物控制


    • 有时候我们需要保证事物的各个步骤都执行成功的前提下才能让每一步骤的事物执行,此时就需要事物控制。
    • 事物控制用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。比如:网上转账系统就是典型的例子,转入与转出要保证同时进行。
    • 事物控制用于控制事物的执行

    <?php
    header("Content-type:text/html;charset:utf-8");
    $mysqli=new mysqli("localhost", "root", "root", "test306");
    if ($mysqli->connect_error){
    die("连接失败".$mysqli->connect_error);
    }

    $mysqli->autocommit(false); //关闭本次数据库连接的自动命令提交事务模式
    $sql1="update account set account=account+10 where id=1;";
    $sql2="update account set account=account-10 where id=3;";

    $res1=$mysqli->query($sql1);
    $res2=$mysqli->query($sql2);

    if ($res1 && $res2){
    $mysqli->commit(); //两项均执行成功了就提交 mysqli_commit — 提交一个事务
    echo "转账成功!";
    }else {
    echo $mysqli->rollback(); //回滚,mysqli_rollback — 回退当前事务
    echo "转账失败!";
    }
    ?>

    数据库:

    create database dd;

    use dd;

    create table account(

    id int primary key,

    balance float,

    )

  • 相关阅读:
    牛客_设计带有setAll功能的哈希表
    leetcode30 串联所有单词的子串
    leetcode715 Range模块
    centos7升级gcc & make & glibc
    SqlServer开窗函数
    使用 new Date() 在chrome、安卓和 IOS 中表现不同
    Mybatis中 ON DUPLICATE KEY UPDATE用法
    应用层是哪一层
    设计模式
    零拷贝
  • 原文地址:https://www.cnblogs.com/imysql/p/5247661.html
Copyright © 2020-2023  润新知