未通过PDO循环插入多维数组值

时间:2019-07-09 09:44:41

标签: php html forms pdo

我有一个动态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

1 个答案:

答案 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]]);
        }