如果更新的值与数据库中的先前数据相同,Laravel Eloquent返回0
P粉662361740
P粉662361740 2024-03-27 09:07:52
0
1
375

我在 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粉662361740
P粉662361740

全部回复(1)
P粉262926195

查询生成器中的 update() 方法返回受影响的行数。

检查失败或成功的值不准确,因为运行两次相同的查询将使第二个查询不影响任何行,因此返回 0,其计算结果为 false

如果发生错误,将会抛出异常

try {
    $updatedRowCount = DB::table('pricelist_naikharga')->whereDate('tanggal', 'update(["isproses" => 1]);
catch (\Exception $e) {
    echo outputJson(500, "Fail");
}

echo outputJson(200, "BerhasilSuccess, affected Rows: ".$updatedRowCount);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!