gpt4 book ai didi

php - 如何使用 DB insert 将 boolean 值 "false"插入为 0?

转载 作者:行者123 更新时间:2023-11-29 17:24:01 25 4
gpt4 key购买 nike

我从 API 请求接收数据,它包含值“true”或“false”。

在我使用 PDO::PARAM_BOOL 绑定(bind)值并将其插入 MySQL 之前

现在我正在使用 Laravel,我想知道如何将此值作为 boolean 值 1 或 0 插入。

我创建了一个迁移,其中包含

$table->boolean('businessorder');  

我将数据保存在数组中并将其插入到我的表中:

$orderarray = [];

foreach($csv as $data => $orderdata){
$orderarray[] = [
...
'businessorder' => $orderdata['is-business-order'],
...
];

}

我收到以下错误

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'false' for column 1  

错误消息还显示要插入数据库的数据为“false”而不是 0。

如何确保它会插入 0 或 1 而不是 true 或 false

当我这样做的时候

'businessorder' => (bool)$orderdata['is-business-order'],  

它将把所有内容设置为 1(因为 (bool)'false' 为 true)

最佳答案

当您尝试将 $orderdata['is-business-order'] 的值放入 DB 列时,MySQL 会尝试将 true

但是 truefalse 不能存储在 boolean 类型列中。因此,我们可以执行类似以下代码的操作来获取 10,而不是 truefalse

businessorder' => ($orderdata['is-business-order']=='true'?1:0)

关于php - 如何使用 DB insert 将 boolean 值 "false"插入为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078214/

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