Thinkphp事务操作实例(推荐)
实例如下:
//开启mysql事务操作 $model = M(); $model->startTrans(); $flag=false; $deal1 = M('ppdd')->where(array('id'=>$data_P['id'],'zt'=>'0'))->save($data_arr); $deal2 = M('tgbz')->where(array('id'=>$ppddxx['p_id']))->save(array('is_dakuan'=>1,'bj'=>'2','date_hk'=>date ( 'Y-m-d H:i:s', time ()))); $deal3 = M('jsbz')->where(array('id'=>$ppddxx['g_id']))->save(array('bj'=>'2')); if($deal1 && $deal2 * $deal3){ $flag=true; } if($flag){ $model->commit(); } else{ $model->rollback(); die("<script>alert('提交失败,请重新提交!');history.back(-1);</script>"); }
以上这篇Thinkphp事务操作实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
ThinkPHP实现事务回滚示例代码
ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交
-
ThinkPHP 3.2.2实现事务操作的方法
本文实例讲述了ThinkPHP 3.2.2实现事务操作的方法.分享给大家供大家参考,具体如下: 手册里说得非常清楚 : 5.3.19 事务支持 ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 启动事务: $User->startTrans() 提交事务: $User->commit() 事务回滚: $User->rollback() 事务是针对数据库本身的,所以可以跨模型操作的 . 例如: // 在User模型中启动事务 $User->s
-
ThinkPHP权限认证Auth实例详解
本文以实例代码的形式深入剖析了ThinkPHP权限认证Auth的实现原理与方法,具体步骤如下: mysql数据库部分sql代码: -- ---------------------------- -- Table structure for think_auth_group -- ---------------------------- DROP TABLE IF EXISTS `think_auth_group`; CREATE TABLE `think_auth_group` ( `id` m
-
ThinkPHP多表联合查询的常用方法
ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 1.原生查询示例: 复制代码 代码如下: $Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.',
-
thinkphp实现图片上传功能分享
1.我们首先需要创建一个表 复制代码 代码如下: CREATE TABLE IF NOT EXISTS `tp_image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(200) NOT NULL, `create_time` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8; 2.然后再conf文件里添加配置(最后一段配置
-
使用Thinkphp框架开发移动端接口
方案一:给原生APP提供api接口 使用TP框架时 放在common文件夹下文件名就叫function.php <?php /** * Created by zhangkx * Email: zkx520tnhb@163.com * Date: 2015/8/1 * Time: 23:15 */ /*************************** api开发辅助函数 **********************/ /** * @param null $msg 返回正确的提示信息 * @pa
-
ThinkPHP实现生成和校验验证码功能
使用ThinkPHP实现生成/校验验证码功能,供大家参考,具体内容如下 首先了解父类Verity.class.php(ThinkPHP/Library/Think/Verity.class.php)中的一些函数 1:check() 校验验证码是否正确 2:entry()输出验证码并把验证码的值保存的session中 3:authcode() 加密验证码(此方法在check()方法中被调用) 控制器生成验证码代码: //验证码 function verifyImg(){ //验证码配置 $cfg
-
ThinkPHP控制器间实现相互调用的方法
本文实例讲述了ThinkPHP控制器间实现相互调用的方法.分享给大家供大家参考.具体实现方法如下: ThinkPHP同一个项目里,两个控制器的方法如何相互调用呢?ThinkPHP提供了一个A(),通过它可以使控制器之间的方法相互调用,使得代码可以重复利用. 官方似乎对A()方法没有相关使用文档,现在通过一个例子来说一下如使用A()方法. 有两个控制器,ColumnsAction和NewsAction.ncatlist()是ColumnsAction的分类列表方法,现在我要在控制器NewsActi
-
ThinkPHP实现静态缓存和动态缓存示例代码
静态缓存 要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且使用HTML_CACHE_RULES配置参数设置静态缓存规则文件. 定义静态规则 'HTML_CACHE_ON' => true, // 开启静态缓存 'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀 'HTML_CACHE_RULES' => array( // 定义静态缓存规则 //
-
ThinkPHP中Widget扩展的两种写法及调用方法详解
本文实例讲述了ThinkPHP中Widget扩展的两种写法及调用方法.分享给大家供大家参考,具体如下: Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用 写法一: ArticlWidget.class.php文件: class ArticleWidget extends Widget { /** * * @param array $data * @return type * 调用方法:{:W('ArticleList
-
ThinkPHP页面跳转success与error方法概述
ThinkPHP自身提供了success方法与error方法用于实现带提示信息的页面跳转功能,可实现添加数据后显示提示信息并跳转的效果.success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使用方法完全一致,下面以success 方法来进行说明. 1.success方法 success方法语法如下: success(message, ajax) 参数说明message可选.页面提示信息.ajax可选.是否AJAX 方式提交,默认为false . 如果是AJAX 方
-
ThinkPHP中create()方法自动验证表单信息
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有数据即返回值为fals
-
thinkphp 多表 事务详解
如下所示: 复制代码 代码如下: function makeAcquire($nUsers,$nAwards) { //更新数据库 $tranDb = new Model(); $tranDb->startTrans(); for($i = 0; $i < sizeof($nUsers); $i++) { //更新表Acquire $flagAc = $tranDb->table('Acquire')->add($a
随机推荐
- jQuery在ul中显示某个li索引号的方法
- vue2滚动条加载更多数据实现代码
- 记一次网站无法访问解决过程,服务器80端口问题解决过程
- Python 的内置字符串方法小结
- FF火狐下获取一个元素同类型的相邻元素实现代码
- 图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
- Zend Framework入门教程之Zend_View组件用法示例
- Python实现查找系统盘中需要找的字符
- Android实现手机拍照功能
- shell实现tr删除替换详解
- linux文件上传,给文件或目录添加apache权限的方法
- jQuery控制iFrame(实例代码)
- JS中的数组方法笔记整理
- JavaScript函数中的this四种绑定形式
- Android拨打电话功能实例详解
- php车辆违章查询数据示例
- ASP.NET Core利用UrlFirewall对请求进行过滤的方法示例
- ubuntu系统下Python虚拟环境的安装和使用教程
- Docker拉取镜像的完整步骤
- 一个简单的Android轨迹动画