首页  >  问答  >  正文

如果更新的值与数据库中的先前数据相同,Laravel Eloquent返回0

我在 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粉662361740P粉662361740180 天前335

全部回复(1)我来回复

  • P粉262926195

    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);

    回复
    0
  • 取消回复