我正在尝试从foreach插入密钥和值的数据。但我收到错误说 - 注意:数组到字符串转换... ..(第22行) 但是我使用var_dump检查了$ key和$ value,发现数组值是完美的。那么解决方案是将这个$ key $ value数据一次插入我的数据库?另请注意,当我运行它时,$ key值在db中成功插入但$ value value字段正在闪烁并在浏览器中出现相同的错误。如果需要,你可以在附图中查看我的数据库表
foreach ($_POST['qty'] as $key => $value) {
mysqli_query($conn, "INSERT INTO combine (rand_id,product_id,product_qty)VALUES('$rand_id','$key','$value')");
}
答案 0 :(得分:0)
根据您的数组和错误消息$value
不是字符串,它是一个数组,您可以再使用一个foreach()
来获取$ value的值。
示例:强>
foreach ($_POST['qty'] as $key => $value) {
foreach ($value as $finalVal) {
$include[] = "('$rand_id','$key','$finalVal')";
}
}
$values = implode(",", $include);
$query = "INSERT INTO combine (rand_id,product_id,product_qty) VALUES $values";
另请注意,您可以在一个查询中插入值作为给定示例。将所有值存储在数组中,而不是使用逗号存储implode()
。
最后,您的代码对SQL注入是开放的,您需要阻止您的代码。您可以关注此帖:How can I prevent SQL injection in PHP? 是准备好的声明&参数化查询是防止的最佳选择。