PHP事务实现原理

131 阅读1分钟

PDO事务实现

<?php

header("Content-Type:text/html;charset=utf-8");

$dsn = "mysql:host=127.0.0.1;dbname=php_03;port=3306;charset=utf8";

$username = 'root';

$password = 'root';

$pdo = new PDO($dsn, $username, $password);

    //1\. 开启事务

    $pdo -> beginTransaction();

    //2, 从宋江的账号扣钱

    $sql = "UPDATE cash SET money=money-5000 WHERE id=2";

    $result = $pdo -> exec($sql);

    //3\. 李逵的账号加钱

    $sql = "UPDATE cash SET money=money+5000 WHERE id=1";

    $result2 = $pdo -> exec($sql);

    if($result && $result2){

        //提交

        $pdo -> commit();

        echo '交易成功!';

    }else{

        //回滚

        $pdo -> rollBack();

        echo '交易失败!';

    }

attachments-2020-08-ontKpYT25f3c9abf83b3b.jpg