PDO专题(四)-PDO的事务操作

[复制链接]
查看: 1492|回复: 31
发表于 2022-10-26 14:53:46 | 显示全部楼层 | 阅读模式
事务:是一个整体,要么一起执行,要么一起回滚
事务的特性:原子性,一致性,隔离性,永久性
如要将多个SQL语句作为一个整体执行,就需要使用到事务
语法
  1. start transaction 或 begin                开启事务
  2. commit        提交事务
  3. rollback        回滚事务
复制代码
例程
  1. //创建测试数据sql代码
  2. create table bank(
  3.        cardid char(4) primary key comment '卡号',
  4.        balance decimal(10,2) not null comment '余额'
  5. )engine=innodb charset=utf8 comment '银行卡号表'

  6. insert into bank values ('1001',1000),('1002',1)
复制代码
PDO专题(四)-PDO的事务操作 PDO专题(四)-PDO的事务操作
PDO事务操作代码
  1. <body>
  2. <?php
  3. if(!empty($_POST)){
  4.     $dsn='mysql:dbname=data;charset=utf8';
  5.     $pdo=new PDO($dsn,'root','root');
  6.     $out=$_POST['card_out'];    //转出卡号
  7.     $in=$_POST['card_in'];      //注入卡号
  8.     $money=$_POST['money'];     //金额
  9.     $pdo->beginTransaction();   //开启事务
  10.     //转账
  11.     $flag1=$pdo->exec("update bank set balance=balance-$money where cardid='$out'");
  12.     $flag2=$pdo->exec("update bank set balance=balance+$money where cardid='$in'");
  13.     //查看转出的账号是否大于0,大于0返回true,否则返回false
  14.     $stmt=$pdo->query("select balance from bank where cardid='$out'");
  15.     $flag3=$stmt->fetchColumn()>=0?1:0;
  16.    
  17.     if($flag1 && $flag2 && $flag3){
  18.         $pdo->commit ();    //提交事务
  19.         echo '转账成功';
  20.     }
  21.     else{
  22.         $pdo->rollBack ();  //回滚事务
  23.         echo '转账失败';
  24.     }
  25. }
  26. ?>
  27. <form action="" method="post">
  28.     转出卡号: <input type="text" name="card_out" id=""> <br>
  29.     转入卡号: <input type="text" name="card_in" id=""> <br>
  30.     金额:<input type="text" name="money" id=""> <br>
  31.     <input type="submit" value="提交">
  32. </form>
  33. </body>
复制代码
PDO专题(四)-PDO的事务操作 PDO专题(四)-PDO的事务操作

易博软件介绍

0

主题

14

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-15 10:45:32 | 显示全部楼层
不错不错

1

主题

219

帖子

112

积分

年费会员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
112

年费会员

发表于 2023-2-17 13:12:09 | 显示全部楼层
很好的帖子,顶了

0

主题

6

帖子

3

积分

营销入门

Rank: 2

积分
3
发表于 2023-2-19 21:35:41 | 显示全部楼层
^说的真好啊,对我的人生有很大的作用的,先谢了大哥!

2

主题

160

帖子

84

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
84

终身会员

发表于 2023-2-21 08:53:31 | 显示全部楼层
大大真的是有感受,想想大大的努力和胸襟,眼光也很是让我感叹。想想我自己,真的应该如大大所说!!!在此感谢大大!!!

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-22 00:59:26 | 显示全部楼层
三人行,必有我师

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-23 09:14:38 | 显示全部楼层
就是这个道理!

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-24 11:23:24 | 显示全部楼层
谢谢  

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-25 14:32:55 | 显示全部楼层
^很好,最苦最难事的事也许就在于些吧。
发表于 2023-2-27 16:52:38 | 显示全部楼层
我也相信中国有世界上最好的程序员!我是第一次到这里来,进入我眼的就是这篇文章。我现在也在学编程。我看了感触好深哦。对我真是一次极大的教育。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表