php中使用mysql事务案例(学习)

mysql事务大概描述:
php中使用mysql事务案例(学习)_第1张图片

1:练习操作

在mysql建名为db_school数据库(InnoDB 类型),和account 表里面字段有
php中使用mysql事务案例(学习)_第2张图片


/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2021/4/28 0028
 * Time: 11:01
 */


    $link = new mysqli('127.0.0.1', 'root', 'root', 'db_school'); // 连接数据库
    if(mysqli_connect_errno()){
                                     // 检查连接错误
        printf("连接失败:%s
"
, mysqli_connect_error()); exit(); } $link->autocommit(0); // 开始事务 $success = true; // 设置事务状态 $price = 999; // 转账金额 $sql1 = "UPDATE account SET cash=cash-$price WHERE cash >= $price and name='userA'"; // 从 userA 账户转出的 SQL 语句 $result = $link -> query($sql1); // 执行SQL语句 if(!$result || $link->affected_rows != 1){ // 如果执行失败则修改事务状态 $success = false; } $sql2 = "UPDATE account SET cash=cash+$price WHERE name='userB'"; // 向 userB 账户中转入的 SQL 语句 $res = $link -> query($sql2); // 执行SQL语句 // $sql3 = "insert into account (name,cash) value ('userC',0)"; // $link -> query($sql3); if(!$res || $link->affected_rows != 1){ // 如果执行失败则修改事务状态 $success = false; } if($success){ // 根据事务状态选择提交或者回滚事务 $link->commit(); echo '转账成功!'; }else{ $link->rollback(); echo '转账失败!'; } $link->close();

你可能感兴趣的:(PHP,MySQL,mysql,php)