PHP myqli 事物实例
在php中,总会遇到类是银行转账的功能,就是一方必须提交成功,另一方必须接收到,才算是一个正常的流程,否则就不正常了;
下面是PHP中使用mysqli的扩展实例,结果是必须两个sql语句都为真才正常提交,否则就回滚回去,资金不变:
<?php header('content-type:text/html;charset=utf-8'); $mysqli=new mysqli('localhost','root','root','test'); $charSet='set names utf8'; $mysqli->query($charSet); //首先把自动提交事物先关了 $mysqli->autocommit(false); $moneyBool=$mysqli->query('update money set money = money-50 where id=1'); $userBool=$mysqli->query('update user set money=money+50 where id=1'); if($moneyBool && $userBool){ //如果两个查询都是正确的,就 提交当前事务 $mysqli->commit(); echo '<双方都完成了转账>'; }else{ //否则 回滚当前事务 即两条update 都不生效 $mysqli->rollback(); echo '<某一方转账的时候出现了错误!!请重试!!>'; } //最后开启自动提交功能 $mysqli->autocommit(true); ?>
Dcr163的博客
http://dcr163.cn/105.html(转载时请注明本文出处及文章链接)