本文实例讲述了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小时内与您取得联系。