im试图找出这段代码出了什么问题。即时通讯收到成员函数fetch_assoc()的调用错误,但我不知道为什么
为了记录-我正在尝试为大学的一个项目建立一个电子商务站点,并使用以下代码在试图购买时减少库存。
仅提及-我在PhpMyAdmin中执行了SELECT查询,它起作用了
<?php
require 'config.php';
session_start();
$sql = "SELECT * FROM cart,product WHERE product.product_code = cart.cart_product_code";
$result = mysqli_query($conn, $sql);
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()){
$stock=$row['product_stock']-$row['quantity'];
$id_stock=$row['cart_product_code'];
$sql= "UPDATE product SET product_stock='$stock' WHERE product_code='$id_stock'";
$result = mysqli_query($conn, $sql);
$query="TRUNCATE TABLE Cart";
$clear= mysqli_query($conn, $query) or die("Invalid query");
}
}
您通过查询更新查询来覆盖while循环内的$ result对象。您可以在不设置任何变量的情况下执行查询:
$sql= "UPDATE product SET product_stock='$stock' WHERE product_code='$id_stock'";
mysqli_query($conn, $sql);
此外,我强烈建议您使用prepared statement来避免使用任何形式的SQL injection。