Php laravel SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:第1行“价格”列的“购买金额*0.00097812555575316”错误
我正在尝试更新整个数据,但我需要将汇率除以购买价格的保证金率,数据格式出现错误 SQLSTATE[22007]:无效的日期时间格式:1366不正确的十进制值:“购买金额*0.00097812555575316”用于第1行的列“prod” SQL:更新产品集值=10,价格=购买金额* 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 = ?, ", [
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"]),
]),