php实现基于pdo的事务处理方法示例
发布时间:2021-01-25 16:50:32 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解php实现基于pdo的事务处理方法。供大家参考研究具体如下: 实例1: try {} catch () {} 形式 setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);} catch (PDOException $e) { die("数据库连接失败
本篇章节讲解php实现基于pdo的事务处理方法。分享给大家供大家参考,具体如下: 实例1:try {} catch () {} 形式 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","test3",11));
//提交事物,并且 数据库连接返回到自动提交模式
$pdo->commit();
}catch(PDOException $e){
echo '执行失败'.$e->getMessage();
//如果数据库被设置成自动提交模式,rollback 在回滚事务之后将恢复自动提交模式。
//包括 MySQL 在内的一些数据库, 当在一个事务内有类似删除或创建数据表等 DLL 语句时,会自动导致一个隐式地提交。
//隐式地提交将无法回滚此事务范围内的任何更改。即 DDL 语句无法回滚
$pdo->rollback();
}
实例2:if…else…形式 getMessage());
}
//2.执行数据操作
//开启事物
$pdo->beginTransaction();
$sql = "insert into cy_log (logid,?)";
$stmt = $pdo->prepare($sql);
$datalist = array(
array(null,"test9",11),array(null,"test10","test11",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程序设计有所帮助。 (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读