由于某种原因,当我尝试执行此php代码时,我的第一个select命令失败了,我不知道为什么。如有任何帮助,我们将不胜感激。据我所知,会话一开始就很好——当我从产品表中执行查询选择时,问题就出现了。它被正确定义,所有的值都被正确插入,否则网站上的产品就不会正确显示。但我不能添加任何东西到我的购物车显然是由于我的选择命令的问题。
<?php
session_start();
$productID = $_POST["productID"];
$cartNumber = $_SESSION["cartNumber"];
require_once('appVars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Could not connect to MySQL server as CIS55Student, cis55 database.');
$query = "SELECT * FROM products_nalanirowe WHERE productID = '$productID'";
$rs = mysqli_connect($dbc, $query) or die('SELECT command failed. ' . mysqli_error($dbc));
$num_rows = mysqli_num_rows($rs);
$row = mysqli_fetch_array($rs);
$productName = $row['productName'];
$productPrice = $row['productPrice'];
if ($cartNumber <> "") {
$query = "SELECT * FROM cart_nalanirowe WHERE cartNumber = '$cartNumber' and ProductID = '$productID'";
$rs = mysqli_connect($dbc, $query) or die('SELECT command failed. ' . mysqli_error($dbc));
$num_rows = mysqli_num_rows($rs);
if ($num_rows == 0) {
$query = "INSERT INTO cart_nalanirowe VALUES ('$cartNumber', '$productID', '$productName', CURDATE(), CURTIME() )";
$rs = mysqli_connect($dbc, $query) or die('INSERT INTO command failed. ' . mysqli_error($dbc));
}
else {
}
}
else {
$query = "SELECT * FROM cart_nalanirowe ORDER BY cartNumber DESC";
$rs = mysqli_connect($dbc, $query) or die('SELECT command failed. ' . mysqli_error($dbc));
echo '<br>Selected record from table cart_nalanirowe';
$row = mysqli_fetch_array($rs);
$lastCartNumber = $row['cartNumber'];
$newCartNumber = $lastCartNumber + 1;
$query = "INSERT INTO cart_nalanirowe VALUES ('$newCartNumber', '$productID', '$productPrice', CURDATE(), CURTIME() )";
$rs = mysqli_connect($dbc, $query) or die('INSERT INTO command failed. ' . mysqli_error($dbc));
$_SESSION["cartNumber"] = $newCartNumber;
}
mysqli_close($dbc);
ob_start();
header("Location: viewcart.php");
ob_flush();
?>
使用mysqli_query
mysqli_query($dbc,$query)or die('SELECT command failed. ' . mysqli_error($dbc));
我希望您首先了解的要点:
- 打开错误报告功能以在开发级别
error_reporting(E_ALL ^ E_NOTICE);
时为您提供帮助 - 使用
mysqli_query($dbc,$query)or die('SELECT command failed. ' . mysqli_error($dbc));
而不是mysqli_connect($dbc,$query);
- 对查询使用Prepared Statement以避免SQL注入
试试这些,然后告诉我们你的代码中有错误的行,以及他们报告的确切错误。