Php laravel SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:第1行“价格”列的“购买金额*0.00097812555575316”错误

Php laravel SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:第1行“价格”列的“购买金额*0.00097812555575316”错误,php,laravel,Php,Laravel,我正在尝试更新整个数据,但我需要将汇率除以购买价格的保证金率,数据格式出现错误 SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:“购买金额*0.00097812555575316”用于第1行的列“prod” SQL:更新产品集值=10,价格=购买金额* 0.00097812555575316 我的代码: DB::update("update prod set value = ?, price = ?, ", [

我正在尝试更新整个数据,但我需要将汇率除以购买价格的保证金率,数据格式出现错误

SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:“购买金额*0.00097812555575316”用于第1行的列“prod” SQL:更新产品集值=10,价格=购买金额* 0.00097812555575316

我的代码:

DB::update("update prod set value = ?, price = ?,  ",
            [
                $datas["value"],
                "buy_amt * ".(1+($datas["value"]/100))/$datas["price"],
            ]);
产品表

价格值数据类型十进制 购买金额数据类型INT

这段代码

"buy_amt * ".(1+($datas["value"]/100))/$datas["price"]
将产生一个字符串,该字符串不适合数据库中的price字段,它是一个数字

你是这个意思

$buy_amt * (1+($datas["value"]/100))/$datas["price"] 

我解决了这个问题

    DB::table("prod")
        ->update([
            "value" => $datas["value"],
            "price" => DB::raw("buy_amt * ".(1+($datas["value"]/100))/$datas["price"]),
        ]),

需要使用DB::raw进行查询计算。

我需要SQL update产品集值=10,价格=buy\u amt*1+$datas[value]/100/$datas[price]我可以获取buy\u amt列值吗?buy\u amt列的数据类型是什么?此外,确保购买金额的名称正确。另外,请确保price列允许多少个十进制值。此外,“值”字段看起来像是一个日期字段,在这里您可以设置一个数字。关于值字段的内容是什么?值字段也是十进制数据类型它对我有用。您是否尝试运行此sql vai phpmyadmin update prod set value=10,price=buy_amt*0.00097812555575316I未安装phpmyadmin。我想运行laravel更新查询。。。
    DB::table("prod")
        ->update([
            "value" => $datas["value"],
            "price" => DB::raw("buy_amt * ".(1+($datas["value"]/100))/$datas["price"]),
        ]),