使用预准备语句将PHP foreach数组插入到mysql中

时间:2017-01-06 01:42:12

标签: php mysql foreach prepared-statement sql-insert

这是我的困境,我不知所措。我正在尝试通过使用准备好的mysql语句循环遍历数组,将数组中的多个值添加到数据库中:

  • 如果我在foreach循环中“执行”该语句,它只会添加 数组中的最后一个条目
  • 如果我在循环之外“执行”它,则会将 3个单独行插入数据库。我想在一个创建的now()日期和行下填写所有列。
  • 如果我在foreach循环之前准备$ stmt,那么它会错误地定义未定义的变量。所以我在循环中定义之后就把它放了,即使在w3schools中它表明你可以在设置参数之前定义“bind_param”变量,我也不明白。谢谢!

    foreach ($products as $v) {
        $product_was = $v['name'];
        $product_now = $v['name'];
        $was = $v['was'];
        $now = $v['now'];
    
        $stmt = $conn->prepare("INSERT INTO $table_name (date_created, $product_was, $product_now) VALUES (now(), ?, ?)");
    
        $stmt->bind_param("ss", $was, $now);
        $stmt->execute();
    }
    $stmt->close();
    $conn->close();
    

0 个答案:

没有答案