事务转账

 1 /**
 2  * 普通的连接
 3  */
 4 mysql_connect(‘127.0.0.1‘,‘root‘,‘root‘);
 5 mysql_select_db(‘news‘);
 6 mysql_query(‘BIGIN‘);//开启事务
 7 mysql_query(‘set names utf8‘);
 8 mysql_query("update bank set money=money-500 where name=‘cnn‘");
 9 $q1=mysql_affected_rows();
10 mysql_query("update bank set money=money+500 where name=‘cnn1‘");
11 $q2=mysql_affected_rows();
12 if($q1 && $q2)
13 {
14     mysql_query(‘COMMIT‘);//提交
15 }
16 else
17 {
18     mysql_query(‘ROOLBACK‘);//回滚
19 }
 1 /**
 2  * pdo 事务
 3  */
 4 $dsn="mysql:host=127.0.0.1;dbname=news";
 5 $db = new pdo($dsn,‘root‘,‘root‘);
 6 $db->exec(‘set names utf8‘);
 7 try{
 8     $db->beginTransaction();
 9     $res=$db->exec("update bank set money=money-600 where name=‘cnn‘");
10    if(!$res)
11    {
12         throw new PDOException(‘cnn error‘);
13    }
14     $res=$db->exec("update bank set money=money+600 where name=‘cnn1‘");
15     if(!$res)
16    {
17     throw new PDOException(‘cnn1 error‘);
18    }
19     $db->commit();
20 }
21 catch(PDOException $e){
22   $db->rollback();
23   echo $e->getMessage();
24 }
时间: 2024-11-03 15:07:59

事务转账的相关文章

mysql事务、触发器、视图、存储过程、函数

存储过程: procedure 概念类似于函数,就是把一段代码封装起来, 当要执行这一段代码的时候,可以通过调用该存储过程来实现. 在封装的语句体里面,可以用if/else, case,while等控制结构. 可以进行sql编程. 查看现有的存储过程: Show procedure status 删除存储过程 Drop procedure 存储过程的名字 调用存储过程 Call 存储过程名字(); 第1个存储过程 ,体会"封装sql" 第2个存储过程, 体会"参数"

Mysql高级之事务

原文:Mysql高级之事务 通俗的说事务: 指一组操作,要么都成功执行,要么都不执行.---->原子性 在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性 事务发生前,和发生后,数据的总额依然匹配----->一致性 事务产生的影响不能够撤消------>持久性 如果出了错误,事务也不允许撤消, 只能通过"补偿性事务" 转账 李三: --->支出 500, 李三 -500 赵四: ---->收到500, 赵四 +500 关于事务

数据库之事务并发问题与事务的隔离级别

事物的并发问题: 事物的并发问题主要分四个方面,即丢失更新,脏读,不可重复读,幻读.如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时,则可能会发生以上几种问题. 1.丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题.每个事务都不知道其它事务的存在.最后的更新将重写由其它事务所作的更新,这样就会导致数据丢失.丢失更新可分为两类: 第一类丢失更新 例如: 时 间   取款事务                             

数据库事务的概念及其实现原理

目录 前言 1. 认识事务 1.1 为什么需要数据库事务 1.2 什么是数据库事务 1.3 事务如何解决问题 1.4 事务的ACID特性以及实现原理概述 2.并发异常与并发控制技术 2.1 常见的并发异常 2.2 事务的隔离级别 2.3 事务隔离性的实现--常见的并发控制技术 3. 故障与故障恢复技术 3.1 为什么需要故障恢复技术 3.2 事务的执行过程以及可能产生的问题 3.3 日志的种类和格式 3.4 日志恢复的核心思想 3.5 事务故障中止/正常回滚的恢复流程 3.6 系统崩溃时的恢复过

jdbc第三天

事务 什么是事务? 转账: 1. 给张三账户减1000元 2. 给李四账户加1000元 当给张三账户减1000元后,抛出了异常!这会怎么样呢?我相信从此之后,张三再也不敢转账了. 使用事务就可以处理这一问题:把多个对数据库的操作绑定成一个事务,要么都成功,要么都失败! ============== 事物的特性:ACID * 原子性:事务中所有操作是不可再分割的原子单位.事务中所有操作要么全部执行成功,要么全部执行失败. * 一致性:事务执行后,数据库状态与其它业务规则保持一致.如转账业务,无论事

SQLServer汇总

数据库语言 DML(数据操作语言) select insert delete update DDL(数据定义语言--建表建库等) creat drop alter DCL(数据控制语言) grant revoke 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 安装时有一个客户端管理软件和一个服务器.我们平常操作的是客户端软件,发送脚本到服务器DMSM(数据库服务器),服务器分析和解析并展示执行结果. 主键的概念 唯一的标识一行数据操作 可以作为其他表的外键来引用 业务主键:有意

Asp.Net 初级 高级 学习笔记

本文并非作者原创,但是作者发表! 不知道十年后,会用多少人收益我的文章,哈哈! 各位,来加个关注![注*]改文章总结了ASP.Net从入门到高级的知识! 朱磊:2012 - 0212 -------------- [朱磊是本文的原创大神,据说当年在黑马刚毕业,月薪税前1W]-------------01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?03.值类型的默认值是什么?(情况一:字段或全局静

数据库和ado

数据库和ADO 数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 主键的概念 如何创建主键 如何创建外键 主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用SQL语句来创建数据库和表 约束分类 top的使用 Distinct的使用(去除重复数) 聚合函数 聚合函数注意事项 between and 和 in 的使用 like, not like 通配符(%,_,[],^) 空值处理:null 是什么? 排序(order by id asc / desc

数据库事物操作

事务 什么是事务?转账:1. 给张三账户减1000元2. 给李四账户加1000元 当给张三账户减1000元后,抛出了异常!这会怎么样呢?我相信从此之后,张三再也不敢转账了. 使用事务就可以处理这一问题:把多个对数据库的操作绑定成一个事务,要么都成功,要么都失败! ========================================================================================== 事物的特性:ACID * 原子性:事务中所有操作是不可