一、数据引擎innodb用begin,rollback,commit来实现提交事务处理,begin开始事务后出现错误就rollback事务回滚或者没有错误就commit提事务提交确认完成。

  start transaction 开始是事务begin和end之间是执行的语句块,set autocommit=0不让事务自动提交设置后要在结束set autocommit=1。

  下面是针对支持事务处理的数据表引擎例子。

mysql_query("start transaction");
mysql_query("set autocommit=0");
mysql_query("begin");
$sql = "insert into student ( name,num) values ( 'test1', '0')";
$sql2 = "insert into student ( name,num) values ( null, '0')";//写错
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res && $res1){
mysql_query("commit");
echo '提交成功。<br/>';
}else{
mysql_query("rollback");
echo '数据回滚。<br/>';
}
mysql_query("set autocommit=1");
mysql_query("end");

二、对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法:

  MyISAM & InnoDB 都支持,LOCK TABLES可以锁定用于当前线程的表。如果表被其它线程锁定,则造成堵塞,直到可以获取所有锁定为止。UNLOCK TABLES可以释放被当前线程保持的任何锁定。当线程发布另一个LOCK TABLES时,或当与服务器的连接被关闭时,所有由当前线程锁定的表被隐含地解锁。

  下面例子是针对不支持事务提交而使用表锁的例子

mysql_query("lock tables student write");//锁住student表write 也可以是read
$sql = "insert into student ( name,num) values ( '三生三世', '0')";
$res = mysql_query($sql);
if($res){
echo '提交成功。!<br/>';
}else{
echo '失败!<br/>';
}
mysql_query("UNLOCK TABLES");//解除锁定

上面代码完整的实例下载地址:http://pan.baidu.com/s/1pLkbkKj

密码:bh49

php+mysql事务处理例子详细分析实例的更多相关文章

  1. php+mysql事务处理例子详细分析实例下载

    一.数据引擎innodb用begin,rollback,commit来实现提交事务处理,begin开始事务后出现错误就rollback事务回滚或者没有错误就commit提事务提交确认完成. start ...

  2. Mysql 死锁的详细分析方法

    用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿.客户找事儿,所以我们也在想尽全力的消除掉数据库的死锁.出现死锁的时候,如果只是想解锁,用show full proc ...

  3. 性能分析 | MySQL 的慢查分析实例

    最近遇见一个 MySQL 的慢查问题,于是排查了下,这里把相关的过程做个总结. 定位原因 我首先查看了 MySQL 的慢查询日志,发现有这样一条 query 耗时非常长(大概在 1 秒多),而且扫描的 ...

  4. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  5. mysql事务处理用法与实例详解

    来源:转载  MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berke ...

  6. [转]mysql事务处理用法与实例详解

    转自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于 ...

  7. 50道SQL练习题及答案与详细分析(MySQL)

    50道SQL练习题及答案与详细分析(MySQL) 网上的经典50到SQL题,经过一阵子的半抄带做,基于个人理解使用MySQL重新完成一遍,感觉个人比较喜欢用join,联合查询较少 希望与大家一起学习研 ...

  8. 详细分析MySQL事务日志(redo log和undo log)

    innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过程,其实它 ...

  9. 详细分析MySQL事务日志(redo log和undo log) 表明了为何mysql不会丢数据

    innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过程,其实它 ...

随机推荐

  1. 【转】Go Channels

    转自: http://kdf5000.com/2017/07/16/Go-Channels/ Golang使用Groutine和channels实现了CSP(Communicating Sequent ...

  2. poj_2752 kmp

    题目大意 给定字符串S,求出S的所有可能相同前后缀的长度.比如: "alala"的前缀分别为{"a", "al", "ala&qu ...

  3. 关于Windows下的批处理如何模拟Sleep

    好好的批处理,居然没有正式的Sleep可供调用.有时候,确实感到很无趣. 1. 方法1: ping 1.1.1.1来模拟 好不容易从stackoverflow上找到一个答案(称之为答案,是因为它被人标 ...

  4. web基础---->okhttp的使用

    今天我们就讲一下okhttp的使用,具体的okhttp使用可以参见官方的文档. okhttp的使用 一.okhttp的下载安装 Download the latest JAR or grab via ...

  5. MQTT协议笔记之mqtt.io项目Websocket协议支持

    前言 MQTT协议专注于网络.资源受限环境,建立之初不曾考虑WEB环境,倒也正常.虽然如此,但不代表它不适合HTML5环境. HTML5 Websocket是建立在TCP基础上的双通道通信,和TCP通 ...

  6. ubuntu 14 root 账户 启用与ssh登录

    ubuntu 14.04 root用户登录 开启root帐号的方法: 为了启用root 帐号(也就是设置一个口令)使用: sudo passwd root 当你使用完毕后屏蔽root帐号使用: sud ...

  7. luogu P2066 机器分配[背包dp+方案输出]

    题目背景 无 题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M≤15 ...

  8. Maven入门指南(一)

    Maven介绍: Maven是一个强大的Java项目构建工具. 什么是构建工具? 构建工具是将软件项目构建相关的过程自动化的工具.构建一个软件项目通常包含以下一个或多个过程: 生成源码(如果项目使用自 ...

  9. MVC视图布局页常用代码

    1.在视图 Views 中新建文件夹  Shared 2.在 Shared 中新建布局页-母版页   _Layout.cshtml @{ Layout = null; } <!DOCTYPE h ...

  10. hdu2196 Computer【树形DP】【换根法】

    Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...