全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php实现基于pdo的事务处理方法示例

本文实例讲述了php实现基于pdo的事务处理方法。分享给大家供大家参考,具体如下:

实例1:

try {} catch () {} 形式

<?php
$dsn = 'mysql:dbname=cheyun_cms;host=127.0.0.1';
$user = 'root';
$password = '111111';
//采用预处理+事务处理执行SQL操作
//1.连接数据库
try {
  $pdo = new PDO($dsn, $user, $password);
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
  die("数据库连接失败".$e->getMessage());
}
//2.执行数据操作
try{
  //开启事物,此时会关闭自动提交
  $pdo->beginTransaction();
  $sql = "insert into cy_log (logid, value, action, file) values (?, ?, ?, ?)";
  $stmt = $pdo->prepare($sql);
  //传入参数
  $stmt->execute(array(null,"test4","w",11));
  $stmt->execute(array(null,"test5","w",11));
  $stmt->execute(array(null,"test3","w",11));
  //提交事物,并且 数据库连接返回到自动提交模式
  $pdo->commit();
}catch(PDOException $e){
  echo '执行失败'.$e->getMessage();
  //如果数据库被设置成自动提交模式,rollback 在回滚事务之后将恢复自动提交模式。
  //包括 MySQL 在内的一些数据库, 当在一个事务内有类似删除或创建数据表等 DLL 语句时,会自动导致一个隐式地提交。
  //隐式地提交将无法回滚此事务范围内的任何更改。即 DDL 语句无法回滚
  $pdo->rollback();
}

实例2:

if…else…形式

<?php
$dsn = 'mysql:dbname=cheyun_cms;host=127.0.0.1';
$user = 'root';
$password = '111111';
//采用预处理+事务处理执行SQL操作
//1.连接数据库
try {
  $pdo = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
  die("数据库连接失败".$e->getMessage());
}
//2.执行数据操作
//开启事物
$pdo->beginTransaction();
$sql = "insert into cy_log (logid, value, action, file) values (?, ?, ?, ?)";
$stmt = $pdo->prepare($sql);
$datalist = array(
  array(null,"test9","w",11),
  array(null,"test10","w",11),
  array(null,"test11","w",11)
);
//是否提交标志位
$isCommit = true;
foreach($datalist as $data){
  $stmt->execute($data);
  if($stmt->errorCode()>0){
    //回滚
    $pdo->rollback();
    $isCommit = false;
    break;
  }
}
if($isCommit){
  //提交事物
  $pdo->commit();
}

注意:

数据表需要 InnoDB 类型

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# php  # pdo  # 事务  # php下pdo的mysql事务处理用法实例  # PHP中PDO的事务处理分析  # php的PDO事务处理机制实例分析  # PHP中PDO事务处理操作示例  # php中在PDO中使用事务(Transaction)  # php使用PDO事务配合表格读取大量数据插入操作实现方法  # php PDO实现的事务回滚示例  # PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】  # PHP使用pdo实现事务处理操作示例  # 程序设计  # 事务处理  # 操作技巧  # 连接数据库  # 相关内容  # 隐式  # 感兴趣  # 给大家  # 后将  # 内有  # 更多关于  # 所述  # 面向对象  # 设置成  # 此时会  # 讲述了  # Oracle  # gt 


相关文章: c# 在高并发场景下,委托和接口调用的性能对比  建站之星后台密码遗忘如何找回?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  建站之星如何一键生成手机站?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何通过FTP服务器快速搭建网站?  如何在万网自助建站中设置域名及备案?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在IIS中新建站点并配置端口与物理路径?  如何使用Golang安装API文档生成工具_快速生成接口文档  如何彻底删除建站之星生成的Banner?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  ,石家庄四十八中学官网?  如何在Golang中指定模块版本_使用go.mod控制版本号  代刷网站制作软件,别人代刷火车票靠谱吗?  装修招标网站设计制作流程,装修招标流程?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  制作网站的基本流程,设计网站的软件是什么?  如何用y主机助手快速搭建网站?  已有域名能否直接搭建网站?  建站之星云端配置指南:模板选择与SEO优化一键生成  常州企业建站如何选择最佳模板?  建站之星与建站宝盒如何选择最佳方案?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  公司门户网站制作流程,华为官网怎么做?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Bpmn 2.0的XML文件怎么画流程图  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何快速查询网站的真实建站时间?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何选择适合PHP云建站的开源框架?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  大连网站制作公司哪家好一点,大连买房网站哪个好?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何通过PHP快速构建高效问答网站功能?  如何制作算命网站,怎么注册算命网站?  如何在阿里云高效完成企业建站全流程?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何登录建站主机?访问步骤全解析  长沙做网站要多少钱,长沙国安网络怎么样?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  江苏网站制作公司有哪些,江苏书法考级官方网站?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  建站之星3.0如何解决常见操作问题? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。