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 相关文章推荐
php SQL之where语句生成器
Mar 24 PHP
优化php效率,提高php性能的一些方法
Mar 24 PHP
phpize的深入理解
Jun 03 PHP
php引用传值实例详解学习
Nov 06 PHP
Chrome Web App开发小结
Sep 04 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
Laravel中Kafka的使用详解
Mar 24 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
初探PHP5
2006/10/09 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
canvas绘制七巧板
2017/02/03 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python Requests库基本用法示例
2018/08/20 Python
python中时间模块的基本使用教程
2019/05/14 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python提取log文件内容并画出图表
2019/07/08 Python
python如何统计代码运行的时长
2019/07/24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
Django多个app urls配置代码实例
2020/11/26 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
教师岗位职责
2015/02/03 职场文书
三下乡个人总结
2015/03/04 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
python实现简单区块链结构
2021/04/25 Python
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL