Yii+MYSQL锁表防止并发情况下重复数据的方法


Posted in PHP onJuly 14, 2016

本文实例讲述了Yii+MYSQL锁表防止并发情况下重复数据的方法。分享给大家供大家参考,具体如下:

lock table 读锁定

如果一个线程获得在一个表上的read锁,那么该线程和所有其他线程只能从表中读数据,不能进行任何写操作。

lock tables user read;//读锁定表
unlock tables;//解锁
lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞

lock table 写锁定

如果一个线程在一个表上得到一个 write锁,那么只有拥有这个锁的线程可以从表中读取和写表。其它的线程被阻塞。

lock tables user write;//写锁定表
unlock tables;//解锁

Yii中的用法实例

/**
* 当日单项内容状态
*/
public function getPointAready($marke,$dayTime){
  $model = SysRun::model()->findByAttributes(array('syr_marking'=>$marke,'syr_daytime'=>$dayTime));
  if(empty($model)){
    //表写锁定
    Yii::app()->db->createCommand()->setText("lock tables {{sys_run}} WRITE")->execute();
    $model = new SysRun();
    $model->syr_marking = $marke;
    $model->syr_daytime = $dayTime;
    $model->syr_val = 0;
    $model->syr_subval = 0;
    $model->save();
    //表解锁
    Yii::app()->db->createCommand()->setText("unlock tables")->execute();
  }
  return $model;
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
利用js调用后台php进行数据处理原码
Oct 09 PHP
php之字符串变相相减的代码
Mar 19 PHP
php的大小写敏感问题整理
Dec 29 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
Yii实现的多级联动下拉菜单
Jul 13 #PHP
YII视图整合kindeditor扩展的方法
Jul 13 #PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 #PHP
Yii安装与使用Excel扩展的方法
Jul 13 #PHP
Yii配置与使用memcached缓存的方法
Jul 13 #PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 #PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 #PHP
You might like
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
python和pyqt实现360的CLable控件
2014/02/21 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
求职信的七个关键技巧
2014/02/05 职场文书
有趣的广告词
2014/03/18 职场文书
银行业务授权委托书
2014/10/10 职场文书
初中英语教学随笔
2015/08/15 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
css样式important规则的正确使用方式
2022/06/10 HTML / CSS