【发布时间】:2021-02-09 16:28:35
【问题描述】:
当我使用不同的输入和相同的名称将数据发送到 PHP 中的服务器时,我无法通过 foreach 函数将数据插入到我的数据库中。
我尽了最大的努力和 stackoverflow 上提供的所有其他功能,但它们都对我没有帮助。
请帮助我如何进行此修复以及实现我的代码功能的真正代码。 因为开发者控制台发送数据是 -
productID:21202,33201,44202,44202,33204
Qty:1,2,3,4,5
PHP
foreach($_POST['productID'] as $product) {
foreach($_POST['Qty'] as $qty) {
$stmt = $con->prepare("INSERT INTO `table` (product,qty) VALUES (:p,:q)");
$stmt->execute(array(
':p' => $product,
':q' => $qty
));
}
}
echo $_POST['productID'];
response is = 21202,33204,332061
【问题讨论】:
-
请发送
var_dump($_POST)并将输出添加到您的问题中。我们需要查看完整的 $_POST 数组才能知道它包含什么。 -
这看起来像一个逗号分隔的字符串,而不是一个数组。试试
foreach(explode(',', $_POST['productID']) as $product) { foreach(explode(',', $_POST['Qty']) as $qty) { -
你真的应该在循环之前调用
prepare(),然后在循环中使用新值调用execute()。 -
我猜你和
Qty有同样的问题,但由于你没有添加我要求的内容,我只是猜测。 -
我要求的是
var_dump($_POST),而不是var_dump($_POST['productID'])。我现在已经写了三遍确切的代码 sn-p 了。只需复制/粘贴我写的内容,而不是尝试制作自己的版本。
标签: php arrays pdo foreach insert