tp5事務提交操作有關try-catch結構中數據未回滾的問題

最近做畢設項目時發現,在利用try-catch結構語句進行數據庫的事務提交時,出現了這麼一個問題:一次刪除多張表中的關聯內容,從執行結果中查看也確實是已經被刪除掉,按理說代碼到此就應該結束返回,但程序總是會繼續執行到catch語句塊中,令人很費解,catch語句塊中的打印輸出錯誤信息爲空,同時數據回滾操作也並沒有執行。。。
  
  經過思考,首先所有執行刪除操作的提交代碼都是正確的,因爲數據確實已被刪除掉,那會不會是Db::commit();事務提交操作後的那一句代碼有問題呢?一查還果然是這句代碼 $this->success(‘刪除成功!’); 有問題,數據刪除操作成功之後本應返回給我刪除成功的信息,沒有正確返回還給我整到了catch語句中。最後我改用echo語句返回刪除成功的信息。
  
  所以,這兒做一個總結少走彎路,如果你需要返回例如“刪除成功”的信息,並使用 $this->success(); 語句去執行,那就要在該方法裏填寫第二個參數,第二個參數表示跳轉地址。
success方法默認跳轉地址是 $_SERVER[“HTTP_REFERER”],error方法的默認跳轉地址是javascript:history.back(-1);同時兩個方法還有第三個參數表示跳轉時間,默認的等待時間success方法是1秒,error方法是3秒

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章