网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

三分钟掌握MySQL中事务的处理

本文主要给大家介绍MySQL中事务的处理,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL中事务的处理吧。

创新互联公司主要企业基础官网建设,电商平台建设,移动手机平台,微信小程序开发等一系列专为中小企业按需设计网站产品体系;应对中小企业在互联网运营的各种问题,为中小企业在互联网的运营中保驾护航。

步骤:

1.开启事务 start transaction

当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中!

2.回滚 rollback

回滚,就是恢复到事务开启之前的最原始的状态!

注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务!

3.提交 commit

事务的基本原理

普通的执行,之所以是立即执行并生效,因为默认的,MySQL对sql语句的执行是自动提交的!所以,开启一个事务的本质,就是关闭了以前的自动提交的功能,而是由用户手动提交(利用commit语句)!

总结事务的步骤:

1,  开启事务

2,  如果执行成功,就提交commit

3,  如果有任何一条sql语句执行失败,则回滚rollback!

事务处理最典型的就是借还钱。下面以张三向李四还1000元为例

首先查看数据库中各自的钱数

三分钟掌握MySQL中事务的处理

下面是处理还钱事务的代码:

*/

echo "";

// 1 连接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);mysql_query('set names utf8');

// 2  开启事务
mysql_query("start transaction");
//设置一个变量,用来判断所有sql语句是否成功
$flag = true;

// 2.1执行事务中的一组sql语句

// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";
$res = mysql_query($sql);
if (!$res) {  
   //若sql语句执行失败,把$falg设置为false    $flag = false; }

//张三的money-1000
$sql = "update pdo set money=money-1000 where name='张三'";
$res = mysql_query($sql);
if (!$res) {  
   //若sql语句执行失败,把$falg设置为false    $flag = false; }

// 2.2 判断事务是否执行成功
if ($flag) {  
   //所有sql语句执行成功,把sql语句提交    mysql_query('commit');    echo "还钱成功!"; }else{  
   // 如其中一条执行失败,则回滚到事务开启之前的状态    mysql_query('rollback');    echo "还钱失败!"; }

结果:

三分钟掌握MySQL中事务的处理

三分钟掌握MySQL中事务的处理

下面,我们故意把其中一个字段写错,看看事务是否正常处理,数据库中的钱数是否有变化!

// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";  //把moeny字段错写成mone

结果:

三分钟掌握MySQL中事务的处理

三分钟掌握MySQL中事务的处理

结果是还钱失败,并且数据库中各自的钱数没有变化,说明当某一条语句未执行成功时,事物不会提交,而会回滚,把数据恢复到开始事务之前的原始状态,这也是使用事务的作用,即只有当事务中所有sql语句全部执行成功,事务才会提交,否则会回滚!

以上就是MySQL中事务的处理的详细内容,更多请关注创新互联其它相关文章!


本文标题:三分钟掌握MySQL中事务的处理
链接地址:http://bjjierui.cn/article/jcpoeo.html

其他资讯