thinkphp中如何使用鎖的功能,如何使用類似於mysql的for update功能?
Thinkphp的加鎖功能,我下面詳細說一下:
首先,資料庫型別要是InnoDB,其次,加鎖必須跟事務同時使用,還有,查詢的時候都必須帶鎖,比如: $user_mod->lock(true)->where(‘id=1’)->select();這個地方用鎖查詢,其次地方如果查詢這個user物件需要防止同時操作的話也要進行加鎖,就是也要用lock(true)這種方式查詢:
程式碼示例如下:
M()->startTrans();//開啟事務 $map['userid']='666';//查詢條件 $user = M('User')->lock(true)->where($map)->find();//加鎖查詢 if($user) { //執行你想進行的操作, 最後返回操作結果 result $result = true; if(!$result) { M()->rollback();//回滾 $this->error('錯誤提示'); } } M()->commit();//事務提交 $this->success('成功提示');
加上lock(true)的實際就是在查詢語句最後加上 for update,可以用如下這種方法測試,開兩個視窗,一個視窗開啟事務,然後查詢加鎖一條資料,另一個視窗再次查詢加鎖這條資料,你會發現另一個視窗的查詢會一直等待,直到第一個視窗的事務提交。如圖:
最後,希望能幫助到大家!
相關推薦
釘釘e應用中的插槽功能,類似於element-ui 的slot功能,點選某個按鈕輸出所在列表項的資料
定義data屬性,data-obj="{{item}}" <view data-obj="{{item}}" catchTap="onHasQuiz">隨堂考試</view> 用e接收,console輸出看 onHasQuiz(e) { console.l
c/cpp中如何分割字串,類似於split的功能
在python中,如果要求當前時間的unix時間戳,我特別喜歡這麼用: import time timestr = time.time() timestamp = int(timestr.split('.')[0]) 這裡的split函式,我非常喜歡,在java、c#和
leetcode676+修改一個字母在vector的dict中有沒有,類似於字典樹,暴力
https://leetcode.com/problems/implement-magic-dictionary/description/ class MagicDictionary { public: set<string> s; /** Initialize
淺析在QtWidget中自定義Model(beginInsertRows()和endInsertRows()是空架子,類似於一種信號,用來通知底層)
cti ron 初學者 開發 http 沒有 insert ati 學習 Qt 4推出了一組新的item view類,它們使用model/view結構來管理數據與表示層的關系。這種結構帶來的功能上的分離給了開發人員更大的彈性來定制數據項的表示,它也提供一個標準的model接
mysql下分組取關聯表指定提示方法,類似於mssql中的cross apply
nbsp cts ont font ack you 方法 sta lease 轉至:https://stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of-grouped-result
【kotlin】基本語法when的使用,類似於java中的switch,但是又青出於藍而勝於藍
href .com log 事情 IT 使用 基本語法 kotlin 參數 when(要判斷的參數){ 參數值為1 ->做這種事情 參數值為2 ->做另一種事情 else -> 類似於switch中的default } 擴展使用:ht
python中多執行緒開啟的兩種方式(內含有event的應用,即安全的機制,類似於java的等待喚醒機制,不會出現多個執行緒之間的錯亂問題)
event是類似於java中的等待喚醒機制,具體方法參照上一篇CSDN 下面來介紹開啟執行緒的第一種方式 #Filename:threading1.py #開啟執行緒的第一種方式 import threading import time event=threadin
第 0000 題:將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數字,類似於微信未讀資訊數量那種提示效果。 類似於圖中效果
<pre name="code" class="python">import os import Image, ImageDraw, ImageFont ,ImageFilter os.c
關於mybatis根據傳進來的引數執行不同的語句,類似於java中的if~else~語句
1、在一個方法中根據條件執行兩個不同的查詢語句,例如下面的查詢穿進來的引數為admin時執行第一個查詢語句,否則就執行下面查詢語句 dao類中的方法 public List<Caidan> getcaidan(@Param(value="czyid") Stri
Android中Application類用法(整個程式的全域性變數,即單例),類似於session
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.test"
Android 開啟手機QQ,實現類似於客服功能
專案中,遇到一個小問題,在此記錄一下,就是實現客服的功能。由於專案並沒有整合 IM 模組,所以利用手機QQ,實現客服功能!! 實現比較簡單: /** * 判斷 使用者是否安裝QQ客戶端 */ public static boolean isQQC
vs2013/2015中scanf函數類似於error C4996: 'scanf': This function or variable may be unsafe的安全檢查錯誤
span 調試 ria 安全性 init 點擊 scan online pan 在使用vs2015時,遇到了scnaf函數安全性的問題,程序不能正常運行,錯誤如下: error C4996: ‘scanf‘: This function or variable may
pandas的篩選功能,跟excel的篩選功能類似,但是功能更強大。
list stack indexing 一個 loop excel data creat imp Select rows from a DataFrame based on values in a column -pandas 篩選 https://stackov
PHPExcel在Thinkphp中的使用,列寬度可定義
namespace app\admin\controller; ###引入檔案 class EvaluateController extends Controller { /** * 匯出使用者評價到excel */ public function dumpLog
android實現本地視訊的播放,類似於一個小型的MP4,可以選擇本地的檔案進行播放
首先呢我們來 看一下佈局檔案中的程式碼: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
shell中花括號,3個小於號功能
針對不同的變數狀態賦值(沒設定、空值、非空值): file−my.file.txt:若{file-my.file.txt}: 若file−my.file.txt:若file沒有設定,則使用my.file.txt作返回值。(空值及非空值時不作處理) file:−my.file.txt:若{file:-my.fi
開源庫【FreeRadioGroup】--淡出、自由拖動、自動貼邊,類似於蘋果的虛擬輔助按鈕
*本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 *本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 *本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 demo演示 簡單描述 這個
Android實現背景透明度漸變的效果,類似於分享底部的彈出框
實現背景透明度漸變的效果,類似於分享底部的彈出框 這是公司最近寫的一個專案,其中的一個自定義分享模組,剛開始實現的效果比較簡單,背景透明度沒有漸變,而是隨著底部分享的彈出框而一起彈出,看起來比較生硬,使用者體驗不是很好,現在要實現的效果就是類似於SharedS
MyEclipse選單欄中的Search,瀏覽器上的F12功能鍵
在編碼過程中,有些識別符號在有些檔案中只出現了一次(比如js中),自己不清楚框架原理或者說不清楚這個識別符號在哪裡定義等,這時候我們應該怎麼找到這個識別符號的起始位置。我們可以通過MyEclipse中選單欄Search條目來在整個專案中的某一類檔案中搜索(比如*.jsp)。
Android -- 固定在ScrollView頂部的View,類似於新浪微博的評論列表的頂部
現在很多App都實現了這個功能,例如新浪微博評論頁面的評論、轉發、讚的數字可以固定在螢幕上方。我個人很喜歡這種設計,所以利用一點空餘時間簡單實現了一個類似的功能。 先來看一下上面這張圖的效果。 這個是新浪微博的一個頁面,整體佈局大致分了三塊:正文內容、轉發評論贊的