【发布时间】:2018-12-07 06:14:59
【问题描述】:
我从 API 请求接收数据,其中包含值“true”或“false”。
在我使用 PDO::PARAM_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' 为真)
【问题讨论】:
-
您可以添加一个简单的检查,例如:
$orderdata['is-business-order'] == 'true' ? 1 : 0
标签: php mysql laravel insert boolean