Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法
本文實(shí)例講述了Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
lock table 讀鎖定
如果一個(gè)線程獲得在一個(gè)表上的read鎖,那么該線程和所有其他線程只能從表中讀數(shù)據(jù),不能進(jìn)行任何寫操作。
lock tables user read;//讀鎖定表 unlock tables;//解鎖 lock tables user read local;//本地讀鎖定表,其他線程的insert未被阻塞,update操作被阻塞
lock table 寫鎖定
如果一個(gè)線程在一個(gè)表上得到一個(gè) write鎖,那么只有擁有這個(gè)鎖的線程可以從表中讀取和寫表。其它的線程被阻塞。
lock tables user write;//寫鎖定表 unlock tables;//解鎖
Yii中的用法實(shí)例
/** * 當(dāng)日單項(xiàng)內(nèi)容狀態(tài) */ 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; }
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
創(chuàng)建無限極分類樹型結(jié)構(gòu)的簡(jiǎn)單方法
下面小編就為大家?guī)硪黄獎(jiǎng)?chuàng)建無限極分類樹型結(jié)構(gòu)的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06Yii中CGridView關(guān)聯(lián)表搜索排序方法實(shí)例詳解
這篇文章主要介紹了Yii中CGridView關(guān)聯(lián)表搜索排序方法,以實(shí)例形式詳細(xì)分析了CGridView關(guān)聯(lián)表搜索排序的實(shí)現(xiàn)過程與搜索結(jié)果出現(xiàn)問題的解決方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12php如何修改SESSION的生存存儲(chǔ)時(shí)間的實(shí)例代碼
本篇文章主要介紹了php如何修改SESSION的生存時(shí)間的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07PHP可變函數(shù)學(xué)習(xí)小結(jié)
PHP 支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后有圓括號(hào),PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它,本文給大家分享php可變函數(shù)學(xué)習(xí)小結(jié),對(duì)php可變函數(shù)相關(guān)知識(shí)感興趣的朋友一區(qū)學(xué)習(xí)吧2015-11-11ThinkPHP打開驗(yàn)證碼頁(yè)面顯示亂碼的解決方法
這篇文章主要介紹了ThinkPHP打開驗(yàn)證碼頁(yè)面顯示亂碼的解決方法,通過頭部添加自定義文件驗(yàn)證目錄并過濾BOM頭來實(shí)現(xiàn)該功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12Laravel中基于Artisan View擴(kuò)展包創(chuàng)建及刪除應(yīng)用視圖文件的方法
這篇文章主要介紹了Laravel中基于Artisan View擴(kuò)展包創(chuàng)建及刪除應(yīng)用視圖文件的方法,簡(jiǎn)單分析了Laravel擴(kuò)展包的安裝及視圖的創(chuàng)建與刪除操作相關(guān)技巧,需要的朋友可以參考下2016-10-10