PHP-是否有更好的方法将所需数据保存到MySQL?

时间:2019-03-04 23:13:57

标签: php mysql database

我目前正在建立一个网站,以学习和更多地了解PHP。这是一个电子商务网站。我收到“在布尔值上调用成员函数bind_param()的错误”(所引用的行在下面用'*标记)。是否有更好的方法来布局代码以实现此目的:

1)使用会话中的ID从“用户”表中检索用户的电子邮件

2)对于购物篮会话中的每个“产品”(存储在产品ID的索引中,值即数量)从ID匹配的“产品”表中获取产品详细信息

3)在循环过程中,将所需信息插入“订单”表

PHP:

$userId = $_SESSION['user_id'];

if ($stmt = $conn->prepare("SELECT userEmail
FROM users
WHERE userId = ?")) {
  $stmt->bind_param('s', $userId);
  $stmt->execute();
  $stmt->store_result();
  $stmt->bind_result($Email);
  $stmt->fetch();
}

foreach ($_SESSION['basket'] as $index => $value){
  $SQL="select * from products where prodId =".$index;
  $exeSQL=mysqli_query($conn, $SQL) or die (mysqli_error($conn));
  $arrayp=mysqli_fetch_array($exeSQL);
  $subtotal = $value*$arrayp['prodPrice'];
  $total = $total+$subtotal;
  $oprodId =$arrayp['prodId'];
  $oprodName =$arrayp['prodName'];

  $stm = $conn->prepare("INSERT INTO orders (userId, order_prodId, order_prodName, order_custId)
  VALUES(?,?,?,?)");
  **$stm->bind_param('ssss', $userId, $oprodId, $oprodName, $userId);**
  $stm->execute();
}

我已经仔细检查过,列名和表名是正确的。 *注意-我了解一个查询不安全。我正在改变这个。

0 个答案:

没有答案