gpt4 book ai didi

php - Laravel Fluent Query Builder 更新查询

转载 作者:行者123 更新时间:2023-11-29 03:02:09 25 4
gpt4 key购买 nike

我想在使用更新时添加两列,如下所示:

 Update purchase_stock inner join stock on purchase_stock.fkstockid=stock.stockid SET currentavailable=currentavailable+subquantity where fkorderid='1';

这是当前的 Fluent 代码:

 DB::table('purchase_stock')->join('stock','stock.stockid','=','purchase_stock.fkstockid')->where('fkorderid',$orderId)->update(array('currentavailable'=>'currentavailable'+'subquantity'));**

但它会抛出如下错误:

"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"syntax error, unexpected '=>'"

有没有人有解决办法?

最佳答案

您的流利尝试非常接近,但存在两个问题:

  1. 加号需要放在引号内,因为您希望在 SQL 中而不是在 PHP 中完成数学运算。
  2. 需要一个 DB::raw() 围绕这个值,这样 Laravel 就不会认为您实际上是在尝试将它设置为字符串 "currentavailable + subquantity"

所以最终的产品看起来是这样的:

DB::table('purchase_stock')
->join('stock', 'stock.stockid', '=', 'purchase_stock.fkstockid')
->where('fkorderid', $orderId)
->update(['currentavailable' => DB::raw('currentavailable + subquantity')]);

关于php - Laravel Fluent Query Builder 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com