在php for循环中使用准备好的mysql语句?

在php for循环中使用准备好的mysql语句?,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,我正在使用一个准备好的语句和一个for循环将多个产品插入到一个表中。。我遇到的问题是它只输入表单中的第一个产品。我有echo语句来测试for循环是否工作,并且所有正确的值都在我的页面上进行了echo。为什么它不会在我的表中插入更多的第一个产品 <?php session_start(); //db info $conn = new mysqli("$server","$user_name","$password","$database"); $productName = $_POST

我正在使用一个准备好的语句和一个for循环将多个产品插入到一个表中。。我遇到的问题是它只输入表单中的第一个产品。我有echo语句来测试for循环是否工作,并且所有正确的值都在我的页面上进行了echo。为什么它不会在我的表中插入更多的第一个产品

<?php
session_start();

//db info

$conn = new mysqli("$server","$user_name","$password","$database");

$productName = $_POST['productName'];
$productPrice = $_POST['productPrice'];
$productDescription = $_POST['productDescription'];
$productImage = $_POST['productImage'];
$id = $_SESSION['id'];



if (isset($productName) && isset($productPrice) && isset($productDescription) && isset($productImage)) {
    $stmt = $conn->prepare("INSERT INTO Products (id, productNumber, productName, productPrice, productDescription, productImage) 
                    VALUES (?, ?, ?, ?, ?, ?)");
    $stmt->bind_param("iissss", $id, $productNumber, $productNames, $productPrices, $productDescriptions, $productImages);

    $productNameCount = count($productName);

    for($i = 0; $i < $productNameCount; $i++) {
        $productNumber = $i + 1;
        echo $id." ";
        echo $productNumber." ";
        $productNames = $productName[$i];
        echo $productNames." ";
        $productPrices = $productPrice[$i];
        echo $productPrices." ";
        $productDescriptions = $productDescription[$i];
        echo $productDescriptions." ";
        $productImages = $productImage[$i];
        echo $productImages."<br>";
        $stmt->execute();
        $stmt->reset();
    }
    $stmt->close();
}
mysqli_close($conn);
?>


如果您注释掉
$stmt->reset()
,则不会改变任何内容。@JRD不,您不会。它绑定到引用,因此对变量的更改应该有效。检查
$stmt->execute()
中的错误。我猜你有重复的id。
id
应该是唯一的密钥吗?您正在为每个插入发送
$\u会话['id']