我需要将MySQL数据从数组值插入到单个raw中 . 我已经尝试过以下代码,但是我收到错误:警告:implode():传入的参数无效如何解决此问题?或者有没有其他方法在MySQL中使用PHP将数组值插入单个raw?
<?php
foreach ($_POST['qty'] as $product_id => $qty) {
$product_id = implode(" ",$product_id);
$qty = implode(" ",$qty);
}
$q = mysqli_query($conn, "INSERT INTO product_order (product_id,qty) VALUES ('$product_id','$qty')");
?>
6 回答
Implode函数第二个参数接受Array所以首先检查implode函数第二个参数是数组 .
这一行说
$product_id
是不是数组的键,所以内爆函数不起作用 .请提供
$_POST['qty']
转储试试这个:
在db中保存逗号分隔值是非常糟糕的 .
This is not a good idea. - 这是一个非常糟糕的主意 .
话虽如此 . 你的
$product_id
不是一个数组 - 它是一个数组键(string
或integer
)所以没有任何内容可以破坏 .不是将csv插入到这个表中,而是为每个id插入新行更好 .
试试这个 :
如果你想将数组发布到数据库然后使用php serialize函数 . 它最适合数组类型数据
你可以这样做,
这应该工作 .
但是在字段中保留逗号分隔列表并不是一件好事 . 您可以拥有一个新表,以便您可以保持映射到哪些产品的顺序 .