事务的简单应用
2016-06-29 07:38
417 查看
<?php header('content-type:text/html;charset=utf-8'); try{ $pdo=new pdo("mysql:host=127.0.0.1;dbname=month9", "root", "root", array(PDO::ATTR_AUTOCOMMIT=>0));//最后是关闭自动提交 //$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//这个是通过设置属性方法进行关闭自动提交和上面的功能一样 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//开启异常处理 }catch(PDOException $e){ echo "数据库连接失败:".$e->getMessage(); exit; } try{ $pdo->beginTransaction();//开启事务处理 $price=500; $sql="update users set score='100' where u_id=1"; $affected_rows=$pdo->exec($sql); if($affected_rows==false) throw new PDOException("aaa修改失败");//那个错误抛出异常 $sql="update users set score='60' where u_id=2"; $affected_rows=$pdo->exec($sql); if($affected_rows==false) throw new PDOException("bbb修改失败"); echo "交易成功!"; $pdo->commit();//交易成功就提交 }catch(PDOException $e){ echo $e->getMessage(); $pdo->rollback(); } $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);//自动提交,如果最后不自动提交,转账是不成功的 //设置错误 //报告模式 ERRMODE_SILENT ERRMODE_WARNING
相关文章推荐
- qemu 跑内核和文件系统
- C++中32位单精度浮点数有效数字是多少位?
- 第三方支付接口对接基本流程
- Unity3d程序必备设计模式六大原则
- Memcache及telnent命令详解
- 灵活且强大的RecyclerViewAdapter源码分析
- LiangNa Resum
- 【工具】React-Native动态修改server host
- 勾股定理一日一证连载37
- vba upgrade
- BLE FAQ
- 九大对象(笔记)
- vba rename name
- Vue.js——60分钟组件快速入门(上篇)
- Vue.js——60分钟组件快速入门(上篇)
- kafaka 单机安装 及 连通性测试
- 开源Asp.Net Core小型社区系统
- .NET Core:面向未来的开源跨平台开发技术
- css动画的transition渐变属性
- 30分钟git命令入门到放弃