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