MySQL的政工的处理

步骤:

1.开事务 start
transaction

当我们被一个业务之上,我们针对sql的操作都出在内存中,但是并未真的的报告到数据库磁盘的公文中!

2.回滚 rollback

拨滚,就是回复到业务开启前的极致原始之状态!

顾:回滚操作会自动的关一个事务,如果想还实施工作,需要还打开事务!

3.提交 commit

 

政工的基本原理

 

习以为常的实施,之所以是随即施行并生效,因为默认的,MySQL对sql语句之行是自行提交的!所以,开启一个事务之本质,就是关闭了原先的电动提交的效果,而是由用户手动提交(利用commit语句)!

总结工作之步子:

1,  开启事务

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

3, 
如果生外一样长达sql语句执行破产,则回滚rollback!

 

事务处理最突出的即是放贷还钱。脚为张三为李四还1000首先为条例

先是查看数据库中分头的钱数

图片 1

下面是拍卖还钱事情之代码:

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

结果:

图片 2

图片 3

脚,我们有意识将里面一个字段写错,看看事务是否健康处理,数据库被的钱数是否来转变!

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

结果:

图片 4

图片 5

结果是还钱砸,并且数据库中分别的钱数没有转变,说明当某一久告句子未实行成功时,事物不会见提交,而会回滚,把数据恢复到起来作业之前的原始状态,这也是使工作的打算,即只有当事情中持有sql语句全部行成功,事务才见面交,否则会回滚!

下篇会介绍PDO中事务处理

网站地图xml地图