我有一个动态HTML表单,其中包含三个字段(项目,数字,费用)。用户可以根据需要添加任意多的行。因此,我将字段名称设置为item [],number [],cost [],以便遍历帖子并将值插入DB。
我已验证通过vardump正确正确地发布了值,并且我检查了以下循环是否正在通过打印机获取值(键和值)。 (并且还简单地回显$ value1)。
Timestamp
但是,如果我尝试插入传递值来执行,则什么也不会发生(没有插入数据,也没有收到错误消息)。
foreach ($_POST as $field => $value) {
foreach($value as $field1 => $value1){
echo $field . ':' . $value1 . '</br>' ;
}
};
我知道$ value1拥有正确的值,但是没有插入它们。有人可以帮忙吗?
我尝试过:
https://phpdelusions.net/pdo_examples/insert#multiple
PDO insert statement with loop through $_POST array
PDO insert array values Insert multiple rows using form and PDO
Need php pdo implode arrays and insert multiple rows in mysql
答案 0 :(得分:0)
$value1
包含一个单个值,并且您需要一个由三个数组组成的数组用于插入语句,每个数组均来自一个不同的项目 。
由于$ _POST数组包含列,因此您需要从相应的单元格中获取值,即对于第一行,您需要item [0],number [0]和cell [0]等上。因此,对第一列进行迭代,获取索引,并将该索引用于其他两列
foreach ($_POST['item'] as $i => $item) {
$stmt->execute([$item, $_POST['number'][$i], $_POST['cost'][$i]]);
}