当前位置 博文首页 > 文章内容

    关于PDO事务功能

    作者:shunshunshun18 栏目:未分类 时间:2021-03-06 10:44:19

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    定义:PDO事务功能,并非PDO额外多出了一项功能,而是将原来MySQL所支持的事务操作进行了一定的封装实现。注意:事务执行是否成功是由MySQL对应的存储引擎是否支持决定的。

    1.事务功能回顾:事务是指改变默认的一次操作一次写入数据表的机制,而是通过事务日志记录操作,在最后通过一次性操作写入到数据表。

    • 开启事务:start transaction,写操作停止直接写入数据表,而是记录到事务日志

    • 事务操作:具体的写操作,通常多个步骤多条指令

    • 提交事务:即事务操作结束

      成功提交:commit,所有事务日志内容同步到数据表,并清空当前事务日志

      失败回滚:rollback,直接清空当前事务日志

    2.PDO类中提供一套方案来实现事务操作

    <?php
    $pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root');
    $pdo->beginTransaction() or die('事务开启失败');//开启事务
    $pdo->exec('insert into student values()');//执行事务
    
    //终止事务
    $pdo->commit();				//成功提交
    $pdo->rollback();			//失败回滚

    3.在事务操作中,有一种回滚点机制,在PDO中没有实现,如果有必要,可以通过SQL指令设置来实现

    <?php
    $pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root');
    $pdo->beginTransaction() or die('事务开启失败');//开启事务
    $pdo->exec('insert into student values()');//执行事务
    //设置回滚点
    $pdo->exec('savepoint sp1');
    
    //继续执行事务...
    
    //回滚
    $pdo->exec('rollback to sp1');
    
    //终止事务
    $pdo->commit();				//成功提交
    $pdo->rollback();			//失败回滚
    ?>

    推荐:,