最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

代码详解MySQL中关于事务的处理

来源:动视网 责编:小OO 时间:2020-11-09 08:43:22
文档

代码详解MySQL中关于事务的处理

这篇文章主要介绍了详解MySQL中关于事务的处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。步骤。1.开启事务 start transaction。当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中。2.回滚 rollback。回滚,就是恢复到事务开启之前的最原始的状态。注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务。3.提交 commit。事务的基本原理。
推荐度:
导读这篇文章主要介绍了详解MySQL中关于事务的处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。步骤。1.开启事务 start transaction。当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中。2.回滚 rollback。回滚,就是恢复到事务开启之前的最原始的状态。注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务。3.提交 commit。事务的基本原理。


这篇文章主要介绍了详解MySQL中关于事务的处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

步骤:

1.开启事务 start transaction

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

2.回滚 rollback

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

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

3.提交 commit

事务的基本原理

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

总结事务的步骤:

1, 开启事务

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

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

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

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

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

<?php 

/**
* MySQL实现事务操作
*/

echo "<meta charset=utf-8>";

// 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 "还钱失败!"; }

结果:

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

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

结果:

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

文档

代码详解MySQL中关于事务的处理

这篇文章主要介绍了详解MySQL中关于事务的处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。步骤。1.开启事务 start transaction。当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中。2.回滚 rollback。回滚,就是恢复到事务开启之前的最原始的状态。注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务。3.提交 commit。事务的基本原理。
推荐度:
标签: 处理 代码 详解
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top