事务处理

…衆ロ難τιáo~ 提交于 2019-11-27 08:28:42

多条SQL语句当成一个整体来进行执行,如果其中由一条SQL语句没有执行成功,

那么所有的SQL语句都要执行失败,将状态回滚到最初状态。

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

PDO::beginTransaction  启动一个事务 

PDO::commit  提交一个事务

PDO::rollBack — 回滚一个事务

<?php$dsn = 'mysql:host = localhost;dbname=user;charset=utf8';try{    $pdo = new PDO($dsn,'root','123456');    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException $e){    die('数据库连接失败'.$e->getMessage());}try{    $pdo->beginTransaction();    $sql = 'update user set money=money-500 where id=1';    $ret = $pdo->exec($sql);    if($ret >0){        echo "建驴转款成功 <br />";    }else{        throw new PDOException('建驴转款失败<br />');    }    $sql = 'update user set money=money+500 where id=2';    $ret = $pdo->exec($sql);    if($ret >0){        echo "建猪转入成功<br />";    }else{        throw new PDOException('建猪转入失败<br />');    }    $pdo->commit();    echo "交易成功!<br />";}catch(PDOException $e){    $pdo->rollback();    echo $e->getMessage();}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!