mysql语句事务回滚_mysql语句,事务处理回滚的问题。
mysql_query(“BEGIN”);
$ck_id = M(‘ods’)->add($public);
foreach ($datas as $k => $val) {
$saveData = M('odo')->add($val);
}
由于插入到odo这个表的数据我是用 foreach循环插入多条数据,怎么判断这些数据全部插入成功了呢?要是有一条没有成功,就做回滚处理。
if($ck_id && $saveData){
mysql_query("COMMIT");
$this->success("数据提交成功","__GROUP__/Warehouse/outbound");
}else{
mysql_query("ROLLBACK");
$this->error("数据回滚,请重新提交");
}
mysql_query(“END”);
如果循环了5条数据,怎么判断 $saveData 知道5条数据都插入成功了呢?需要做一个计数器吗?在循环之前 定义一个变量 $count = 0;
每插入成功一条就$count+1;
类似这样的
$count = 0;
foreach ($datas as $k => $val) {
$saveData = M('odo')->add($val);
if($saveData>0) {
$count++;
}
}
if($ck_id && $count==5) {
回滚处理…..
}
这样可以吗?谁有什么好的方法啊
通常会把事务处理写在try-catch 结构里,当add()返回错误,直接抛出异常,catch里就可以捕获到异常,然后做相应的回滚和日志记录。
还有你的开启事务不能那样写,框架底层数据库驱动不一定是用mysql扩展函数写的,而且mysql扩展函数已经不建议使用了,而用 mysqli或pdo。
thinkphp 都有相应的数据库操作方法,应该使用其封装的方法。
你的方法是可以的,也可以改成有一个不成功就rollback和跳出循环。
mysqli貌似有回滚的接口吧。
判断保存后是否有影响行数,如果没有就rollback
mysql语句事务回滚_mysql语句,事务处理回滚的问题。相关推荐
- mysql中事务的特性_mysql中事务的四大特性
原子性(Atomicity) 事务就像"原子"一样,不可被分割,组成事务的DML操作语句要么全成功,要么全失败,不可能出现部分成功部分失败的情况. 一致性(Consistency) ...
- mysql innodb事务中 出现_MySql InnoDB事务死锁问题
这篇博客的文章内容发生于某天晚上服务端日志报了一大堆 Deadlock found when trying to get lock; try restarting transaction,当时通过字面 ...
- mysql有闪回吗_MySQL的闪回策略
闪回原理 既然binlog以event形式记录了所有的变更信息,那么我们把需要回滚的event,从后往前回滚回去即可. 对于单个event的回滚,我们以表test.user来演示原理 mysql> ...
- mysql 默认事务隔离级别_MySQL 事务隔离级别详解
个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介: MySQL的事务隔离级别一共有四个,分别是读未提交.读已提交.可重复读以及可串行化. 四个特性ACID 原子性 (Atomicity) 事 ...
- mysql客户端与服务端_mysql语句在客户端与服务端的基本使用
//把数据库导出到脚本文件 mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql ---------------------------- ...
- mysql根据语句自动实现索引_mysql 语句的索引和优化
一.基本语句优化 1.尽量避免在列上进行运算,这样会导致索引失败.例如: select * from table where DATE_FORMAT(`customer_regtime`,'%Y')& ...
- mysql执行语句返回主键_mysql语句insert后返回主键
最近开发的一个项目中,因为需要,所以需要使用mybatis中的语句返回一个主键id,语句如下, INSERT INTO F_COMPANY( company_id, company_no, compa ...
- mysql语句在线生成网站_MYSQL语句生成器
看到一位网友用JS做了一个这样一个类似的东西,于是试着用PHP试试看效果. 多提意见,谢谢! MYSQL语句生成器 2005-01-11 初步模型 2005-01-13 修改了可以输入数字及数字为开头 ...
- mysql语句创建商品表_MySQL语句创建表
MySQL语句创建表 关注:242 答案:2 mip版 解决时间 2021-02-02 01:20 提问者慢慢学会遗忘 2021-02-01 12:06 最佳答案 二级知识专家抚弦思华年 2021 ...
最新文章
- LockBits in GDI+【转】http://timothyqiu.com/archives/lockbits-in-gdiplus/
- 【软件工程】技术规格说明书
- 深入java抽象类和接口
- ORACLE 数据库安装后,PL/SQL的登录问题完美解决
- 史上最让数学家无奈的规定!背后真相让人不敢相信,可是没有人能证明对错.........
- 信息学奥赛C++语言:火柴盒
- python去重复记录_python如何处理重复值数据?
- 给你出道题---如何蒙题
- 将python文件转换exe可执行程序
- 百度竞价软件测试面试,【百度SEM基础试题】百度推广竞价专员基础知识测试
- 使用Android 原生 API获取经纬度并且根据经纬度解析出当前具体位置信息
- 百度云服务器上安装docker步骤
- 全网超火的情感文案号视频是怎么制作的?
- 了解贝尔曼·福特算法
- 8的倍数——题解(容斥原理)
- python 中画球体_python – 有效地绘制许多球体
- 实现智能家居控制系统
- 赶紧收藏起来,宝妈做自媒体短视频赚了1w,全靠这8个素材网站
- node.js安装后输入“node -v”提示‘node‘ 不是内部或外部命令,也不是可运行的程序的解决方法
- HTML表单标签和HTML5新标签
热门文章
- 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
- 双11猫晚直播:看阿里文娱如何“擒住”高并发、多视角、低卡顿!
- 字节跳动冬令营报名启动,邀你一起备战ICPC世界总决赛!
- @程序员,如何解决开发和运维之间的固有隔阂?
- 阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军 IoT 这一年 | 问底中国 IT 技术演进
- Windows 3.1 往事:历史上第一个真正占据主导地位的操作系统
- @程序员,幼儿园小班都在学 AI,就问你慌不慌?
- 单身税的时代就要来临,你还没有用Python帮你找一个女朋友吗?
- 重磅开源!《阿里巴巴Android开发手册》抢鲜下载!
- python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】