将键$和$值插入数据库表单foreach

时间:2016-09-29 11:43:50

标签: php mysql

我正在尝试从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')");
}

enter image description here

print_r($_POST['qty']); result

1 个答案:

答案 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? 是准备好的声明&参数化查询是防止的最佳选择。