搜尋

首頁  >  問答  >  主體

php - 鉤子函式和事務有什麼不同?

覺得都差不多? 是不是鉤子函數出了什麼意外就不會執行.

过去多啦不再A梦过去多啦不再A梦2804 天前573

全部回覆(1)我來回復

  • 世界只因有你

    世界只因有你2017-05-16 13:01:49

    鉤子函數:可簡單地理解為行為發生的點,例如登入過程(提交帳號密碼->驗證帳號密碼->驗證是否帳號被鎖->傳回登入結果),你可以在上面四個步驟的任一個點設定一個鉤子,然後做擴展處理(例如我可能在“驗證帳號密碼”這個點,我實現一個鉤子函數,獲取到提交的帳號和密碼是“001/111”,則將提交的資料改為" user_001/pass_111", 然後程式實際在資料庫作比較的時候,比較的是「user_001/pass_111」這個帳號密碼)。
    事務:更多是指資料庫層級的,例如一次交易過程。張三給李四打款100,會分成兩步:1. 張三的帳戶扣100;2,李四的帳戶加100。那我們必須保證這兩個操作要嘛都成功,要嘛都失敗,才算是正確的,這需要一個事務。事務就是把若干的小步驟當作一個整體的大步驟的東東。這若干的小步驟不是都成功,就是都失敗,不允許一部分成功一部分失敗。
    事務的流程是:
    1, 開啟事務
    2,依序執行小步驟a,b,c,d.....
    3, 如果全部執行成功,提交事務(資料庫永久保存所有變動)
    4,如果任一個小步驟失敗,回滾交易(資料庫還原所做的資料變動,退回到開啟交易之前的資料所處的狀態)

    回覆
    0
  • 取消回覆