旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL什么是事务处理 ?(代码示例)【MySQL教程】,MySQL,事务处理

作者:搜教程发布时间:2019-11-27分类:MySQL教程浏览:81评论:0


导读:本篇文章给人人带来的内容是引见MySQL什么是事件处置惩罚?(代码示例)。有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你们有所协助。MySQL的事件处置惩罚步骤...
本篇文章给人人带来的内容是引见MySQL什么是事件处置惩罚 ?(代码示例)。有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你们有所协助。

MySQL的事件处置惩罚

步骤:

1.开启事件 start transaction

当我们开启一个事件的时刻,我们对sql的操纵都发生在内存中,然则没有真正的反应到数据库磁盘的文件中!

2.回滚 rollback

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

注重:回滚操纵会自动的封闭一个事件,假如想再次实行事件,须要从新开启事件!

3.提交 commit

事件的基本原理

一般的实行,之所以是马上实行并见效,由于默许的,MySQL对sql语句的实行是自动提交的!所以,开启一个事件的实质,就是封闭了之前的自动提交的功用,而是由用户手动提交(应用commit语句)!【相干视频教程引荐:MySQL教程】

总结事件的步骤:

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什么是事件处置惩罚 ?(代码示例)的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL事务处理


欢迎 发表评论: