$u = M('r.goods');$u->startTrans();$arr = $u->lock(true)->select(8);……
注意我沒有提交事務哦
現在的問題是:我要怎麼來測試鎖定呢?
網上說:“要測試鎖定的狀況,可以利用MySQL 的Command Mode ,開二個視窗來做測試。”
我開了兩個命令列視窗A和B,A視窗開啟事務,然後sql加鎖查詢,B視窗不進行任何操作,直接執行同樣的加鎖查詢,感受到了這個“鎖定等待”的狀態,沒有任何問題。
但是為什麼我上面寫的代碼同樣的沒有提交事務,為什麼重新整理兩次頁面沒有“鎖住,頁面卡主”的感覺啊,難道是php指令碼執行完後,所開啟的事務“自動失效”,還是什麼情況呢,還是我寫的代碼有問題,怎麼測試不出來跟命令列視窗中相同的效果呢?
還有一個疑問,我上面B視窗並沒有開啟事務,只是執行加鎖查詢,這樣也會受影響嗎?難道是加鎖需要在事務區塊中才會生效,而其他的查詢時不一定要在事務中是吧,只要是帶加鎖查詢的sql語句才會受上一個事務的影響是吧。
那為何我寫的代碼測試不出來這個效果呢?
回複內容:
$u = M('r.goods');$u->startTrans();$arr = $u->lock(true)->select(8);……
注意我沒有提交事務哦
現在的問題是:我要怎麼來測試鎖定呢?
網上說:“要測試鎖定的狀況,可以利用MySQL 的Command Mode ,開二個視窗來做測試。”
我開了兩個命令列視窗A和B,A視窗開啟事務,然後sql加鎖查詢,B視窗不進行任何操作,直接執行同樣的加鎖查詢,感受到了這個“鎖定等待”的狀態,沒有任何問題。
但是為什麼我上面寫的代碼同樣的沒有提交事務,為什麼重新整理兩次頁面沒有“鎖住,頁面卡主”的感覺啊,難道是php指令碼執行完後,所開啟的事務“自動失效”,還是什麼情況呢,還是我寫的代碼有問題,怎麼測試不出來跟命令列視窗中相同的效果呢?
還有一個疑問,我上面B視窗並沒有開啟事務,只是執行加鎖查詢,這樣也會受影響嗎?難道是加鎖需要在事務區塊中才會生效,而其他的查詢時不一定要在事務中是吧,只要是帶加鎖查詢的sql語句才會受上一個事務的影響是吧。
那為何我寫的代碼測試不出來這個效果呢?
大神在哪裡,大神在哪裡?,幫忙看下啊,為什麼我自己開啟多個頁面測試不出來鎖的效果呢?