我在laravel 8 中遇到問題,當我第一次運行下面的查詢時,它可以正常工作,沒有任何問題,但是當我重新運行它時,它總是顯示失敗訊息,除非我將“isprocess”值變更為與先前的更新有所不同。
即使更新後的值保持不變,如何繼續顯示成功訊息?
$updateIsProses = DB::table('pricelist_naikharga')->whereDate('tanggal', '<=', '2022-05-01')->update(["isproses" => 1]); if($updateIsProses){ echo outputJson(200, "BerhasilSuccess"); }else{ echo outputJson(500, "Fail"); }
P粉2629261952024-03-28 00:38:46
查詢產生器中的 update()
方法傳回受影響的行數。
檢查失敗或成功的值不準確,因為執行兩次相同的查詢將使第二個查詢不影響任何行,因此傳回 0,其計算結果為 false
#如果發生錯誤,將會拋出例外
try { $updatedRowCount = DB::table('pricelist_naikharga')->whereDate('tanggal', '<=', '2022-05-01')->update(["isproses" => 1]); catch (\Exception $e) { echo outputJson(500, "Fail"); } echo outputJson(200, "BerhasilSuccess, affected Rows: ".$updatedRowCount);