我从api请求接收数据,它包含一个值“true”或“false”。
在使用pdo::param\u bool绑定值并将其插入mysql之前
现在我正在使用laravel,我想知道如何将这个值作为布尔值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)
2条答案
按热度按时间ddhy6vgd1#
根据这篇文章,你可以这样做:
li9yvcax2#
当你试图把
$orderdata['is-business-order']
在db列中,mysql试图true
或者false
.但是
true
或者false
不能存储在布尔类型列中。所以我们可以用下面的代码1
或者0
而不是true
或者false
.'businessorder'=>($orderdata['is-business-order']=='true'?1:0)