Php 为什么我的会话数组不能正确读取?
所以我现在正在创建一个webshop项目,我遇到了一个问题。 我要求用户在购物车中添加项目(这是一个会话数组)。 在用户决定购买什么之后,用户可以为这些项目下订单。 首先,用户必须提供一些信息,说明用户希望发送包的地址。 该数据被发送到“orders”表,这很好,我在这里给订单一个ID。之后,我立即尝试用相同的orderID填写orderdetails: 以下代码负责从会话数组中读取数据,然后将相同的信息写入表“orderdetails”Php 为什么我的会话数组不能正确读取?,php,mysql,Php,Mysql,所以我现在正在创建一个webshop项目,我遇到了一个问题。 我要求用户在购物车中添加项目(这是一个会话数组)。 在用户决定购买什么之后,用户可以为这些项目下订单。 首先,用户必须提供一些信息,说明用户希望发送包的地址。 该数据被发送到“orders”表,这很好,我在这里给订单一个ID。之后,我立即尝试用相同的orderID填写orderdetails: 以下代码负责从会话数组中读取数据,然后将相同的信息写入表“orderdetails” $query2 = "INSERT INTO
$query2 = "INSERT INTO orderdetails (OrderID, productID, UnitPrice, Quantity) VALUES ($orderID, $productID, $UnitPrice, $Quantity)";
if (!empty($_SESSION["shopping_cart"])) {
$orderID = mysqli_insert_id($conn);
foreach ($_SESSION["shopping_cart"] as $keys => $values) {
$productID = $values["item_productID"];
$UnitPrice = $values["item_price"];
$Quantity = $values["item_quantity"];
mysqli_query($conn, $query2);
}
mysqli_close($conn);
}
您的查询字符串被设置为默认空值
$orderID
,$productID
,等等。您每次都必须重新生成该查询。将整个查询行放入for循环中
...
$Quantity = $values["item_quantity"];
$query2 = "INSERT INTO orderdetails (OrderID, productID, UnitPrice, Quantity) VALUES ($orderID, $productID, $UnitPrice, $Quantity)";
mysqli_query($conn, $query2);
...
话虽如此,SQL注入是一件事 谢谢大家!!这对我帮助很大!我在用户向shoppingcart添加商品时包含了准备好的语句,这就足够了。现在,我的程序不会写入数组tho的最后一项。。嗯,使用SQL时再小心也不为过。我使用预先准备好的语句,即使我根本没有要绑定的参数。这只是一个好习惯。