前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了。

  1. 将自动提交关闭。
  2. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT

将其设置为0即可关闭,如:$pdo ->setAttribute(PDO::ATTR_AUTOCOMMIT,0);

切记在最后的时候要将其设置为开启。如:$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);

  1. <?php
  2. try{
  3. $pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root","");
  4. }catch(PDOException $e){
  5. echo $e->getmessage();
  6. }
  7. $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,1);
  8. echo "PDO对象创建成功.<br />";
  9.  
  10. $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,0);//脚本执行完语句以后要将程序恢复原来的样子
  11. ?>

2.开启事件处理

在PDO就有那么一个方法:PDO::beginTransaction

其作用就是用来开启事物处理的。

用法是直接调用即可:$pdo ->beginTransaction();

跟着百度学PHP[14]-PDO之Mysql的事务处理1中的案例:

  1. <?php
  2. try{
  3. $pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root","");
  4. }catch(PDOException $e){
  5. echo $e->getmessage();
  6. }
  7. $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,0);
  8. echo "PDO对象创建成功.<br />";
  9.  
  10. try{
  11. $pdo -> beginTransaction();
  12. $price = 10;
  13. //张三减去十元
  14. $sql_1 = $pdo->exec("update demo set yue=yue - {$price} where username ='zhangsan'");
  15. $sql_2 = $pdo ->exec("update demo set yue=yue + {$price} where username ='lisi'");
  16. if ($sql_1) {
  17. echo "张三成功转账{$price}元。";
  18. }
  19. if ($sql_2) {
  20. echo "李四成功收到{$price}元";
  21. }
  22. }catch(PDOException $e){
  23. echo $e->getmessage();
  24. $pdo->rollback();
  25. }
  26. $pdo->commit();
  27.  
  28. $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,1);//脚本执行完语句以后要将程序恢复原来的样子
  29. ?>

跟着百度学PHP[14]-PDO之Mysql的事务处理2的更多相关文章

  1. 跟着百度学PHP[14]-PDO之Mysql的事务处理1

    事务处理:在实际案例当中干一件事的mysql语句(好比转账,小一同学转账100,小二同学收账,在mysql当中小一就要减去转账的钱,小二就要增加100快)倘若该语句执行过程中有任何一条的sql语句出错 ...

  2. 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL

    我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示: <?php try { //$pdo = new pdo("mysql:host=主机;port=端口;dbname= ...

  3. 跟着百度学PHP[14]-PDO的预处理语句2

    在$sql = $pdo -> prepare("insert into users(gold,user,password) values(?,?,?)"):条语句我们不仅仅 ...

  4. 跟着百度学PHP[14]-PDO的预处理语句1

    预处理语句有以下两个特点: 1.效率高 2.安全性好 为什么说预处理语句效率高呢? 预处理语句就好比一个模板,比如下面的一串插入语句: insert into admin(id,username,pa ...

  5. 跟着百度学PHP[14]-初识PDO数据库抽象层

    目录: 00x1 php中的pdo是什么? 00x2 pdo创建一个PDO对象 00x1 php中的pdo是什么? 就是操作数据库的方法,pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验 ...

  6. 跟着百度学PHP[14]-COOKIE的应用/网站登陆案例完整案例

    先在数据库当中创建以下数据: mysql> create table user( -> id int not null auto_increment, ) not null default ...

  7. 跟着百度学PHP[14]-PDO-优化驱动

    使用方法设置预定义变量 PDO的方法/属性 PDO::beginTransaction — Initiates a transaction PDO::commit — Commits a transa ...

  8. 跟着百度学PHP[17]-复习PDO的几个关键词

    主要就是复习一下几个关键词.发现太久没有写又忘了.惭愧. final self static const

  9. 跟着百度学PHP[4]OOP面对对象编程-17-多态

    多态是除封装和继承之外的另一个面象对象的三大特性之一. 多态的作用简而言之就是为程序做括展. 比如说在公司上班,每个月财务发放工资,同一个发工资的方法,在公司内不同的员工或是不同职位的员工,都是通过这 ...

随机推荐

  1. XML-RPC 实现C++和C#交互

    我们通常会面对这样的问题:整合不同平台或不同类库,这些类库可能来自不同的语言,甚至不同的操作系统. 如何解决这类棘手的问题呢? 一.方案介绍 解决不同语言交互的方法有不少,对我了解的windows系统 ...

  2. 在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境

    原文: How to install OpenERP 8.0 Alpha on a fresh Debian / Ubuntu server. OpenERP的安装,可以有多种方式,通过添加源,到 h ...

  3. from表单实现无跳转上传文件,接收页面后台数据

    实现无跳转发送表单数据.文件,并能接收后台返回的数据. 主要技术要点: 1.form表单添加target属性,指定一个iframme的name:form表单提交后在iframe内嵌窗口接受响应,主页面 ...

  4. http://blog.sina.com.cn/s/blog_4a5dbd380101f031.html

    http://blog.sina.com.cn/s/blog_4a5dbd380101f031.html mvn clean install

  5. 删除其他硬盘的Windows文件夹

    删除其他硬盘的Windows文件夹 学习了:https://blog.csdn.net/drbing/article/details/50881461 有效果,必须先改文件夹的所属,然后才能修改权限: ...

  6. 新闻焦点切换flash应用

    pixviewer.zip <!-- pixviewer.swf使用--> <script language="javascript" type="te ...

  7. HDU 4554 叛逆的小明

    叛逆的小明 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submiss ...

  8. 极光推送sdk使用

    创建应用 进入极光控制台后,点击“创建应用”按钮,进入创建应用的界面. 填上你的应用程序的名称以及应用包名这二项就可以了, 最后点击最下方的 “创建我的应用”按钮,创建应用完毕.   创建应用   填 ...

  9. 解决树莓派新内核无法使用18B20和没有声音的问题

    现在新版的树莓派内核由于为了兼容树莓派2和树莓派B+等以前的版本,采用了和原来不同的内核运行方式,使用了设备树的方式,更加灵活.但是由于可能不习惯这样的方式以及没太多相关这方面的介绍,导致很多用户更新 ...

  10. STL源码剖析(heap)

    STL heap并不是容器,而是一系列的算法. 这些算法接受RandomAccessIterator[start, end),并将其表述成一棵完全二叉树. 关于heap算法可以参考之前算法导论的一篇博 ...