头像

PHP操作MySQL事务实例代码

2017-07-15 16:44:00 浏览()   来源:http://www.phpdaima.com//jsfx-10.html   评论 ( 0 )   

  MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

  这篇文章主要介绍了PHP操作MySQL事务的方法,以实例的形式较为详细的分析了ACID特征,具有不错的参考借鉴价值,需要的朋友可以参考下。

  本文实例讲述了PHP操作MySQL事务的方法,分享给大家供大家参考。具体方法如下:

  一般来说,事务都应该具备ACID特征。所谓ACID是Atomic(原子性),Consistent(一致性),Isolated(隔离性),Durable(持续性)四个词的首字母所写,下面以“银行转帐”为例来分别说明一下它们的含义:

  ① 原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。换句话说,事务是不可分割的最小单元。比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个帐户中,只改变一个帐户是不合理的。

  ② 一致性:在事务处理执行前后,数据库是一致的。也就是说,事务应该正确的转换系统状态。比如:银行转帐过程中,要么转帐金额从一个帐户转入另一个帐户,要么两个帐户都不变,没有其他的情况。

  ③ 隔离性:一个事务处理对另一个事务处理没有影响。就是说任何事务都不可能看到一个处在不完整状态下的事务。比如说,银行转帐过程中,在转帐事务没有提交之前,另一个转帐事务只能处于等待状态。

  ④ 持续性:事务处理的效果能够被永久保存下来。反过来说,事务应当能够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。比如:银行转帐过程中,转帐后帐户的状态要能被保存下来。

  在PHP中,mysqli 已经很好的封装了mysql事务的相关操作。如下示例:

        $sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
    $sql2 = "update ScoreDetail  set FScore = 300 where ID= '123456'";
    $sql3 = "insert into  ScoreDetail ID,Score) values ('123456',60)";
    $mysqli = new mysqli('localhost','root','','DB_Lib2Test');
    $mysqli->autocommit(false);//开始事物
    $mysqli->query($sql1);
    $mysqli->query($sql2);
    if(!$mysqli->errno){
      $mysqli->commit();
      echo 'ok';
    }else{
     echo 'err';
      $mysqli->rollback();
    }


标签: php
广告不存在
评论0

后面还有条评论,点击查看>>

温馨提示:为规范评论内容,垃圾评论一律封号...