Php 致命错误:对非对象调用成员函数fetch_assoc()。尝试将产品添加到篮子中
我正在制作一个在线商店,用户可以在那里订购一只鞋,然后将其传递到购物篮,然后用户可以结账。此时我遇到了一个致命错误:在“$row=$query->fetch_assoc();”这一行对非对象调用成员函数fetch_assoc()在checkoutAction.php文件中 checkoutAction.phpPhp 致命错误:对非对象调用成员函数fetch_assoc()。尝试将产品添加到篮子中,php,sql,Php,Sql,我正在制作一个在线商店,用户可以在那里订购一只鞋,然后将其传递到购物篮,然后用户可以结账。此时我遇到了一个致命错误:在“$row=$query->fetch_assoc();”这一行对非对象调用成员函数fetch_assoc()在checkoutAction.php文件中 checkoutAction.php <?php include "checkout.php"; $checkout = new Checkout; include
<?php
include "checkout.php";
$checkout = new Checkout;
include "db.php";
$id = $_REQUEST['equipmentID'];
$query = $conn->query("Select * from equipment Where equipmentID = ".$id);
$row = $query->fetch_assoc();
$data = array('id' => $row['equipmentID'], 'name' => $row['productname'], 'price' => $row['purchaseprice'], qty=> '1');
$addProduct = $checkout->addToBasket($data);
$redirect = $addToBasket?'viewBasket.php':'goretex.php';
header($redirect);
}
假设您正在使用mysqli:您需要检查$conn->query(…)
的结果,如果查询失败,它可能返回false
(请参阅)
请考虑使用准备好的语句,而不是将设备直接放入SQL中,以防止SQL注入。
< P>这可能是因为您的<代码> $CONN->查询(…)< /C>语句返回错误。检查mysqli::query
文档。说明了如果失败,此方法将返回FALSE,这就是为什么$query->fetch\u assoc()
抛出错误的原因
更新代码以捕获此故障并显示错误消息,以便进一步调试
$query = $conn->query("Select * from equipment Where equipmentID = ".$id);
// If query return FALSE, there's an error.
if (! $query) {
throw new \Exception("Database errror: {$conn->error}");
}
$row = $query->fetch_assoc();
希望这对您有所帮助。这是因为您的查询无法执行。试试这个,。。。其中equipmentID=“$id.”;
div class="btn-group">
<button type="button" id="size" onclick ="changeColor()"class="btn btn-warning">7</button>
<button type="button" class="btn btn-warning">8</button>
<button type="button" class="btn btn-warning">9</button>
<button type="button" class="btn btn-warning">10</button>
<button type="button" class="btn btn-warning">11</button>
<button type="button" class="btn btn-warning">12</button>
</form>
</div>
<br>
<br>
<a href="basketAction.php?action=addToBasket&equipmentID=<?php echo $row["equipmentID"]; ?> class="btn btn-info" role="button">Add to Basket</a>
</div>
$query = $conn->query("Select * from equipment Where equipmentID = ".$id);
// If query return FALSE, there's an error.
if (! $query) {
throw new \Exception("Database errror: {$conn->error}");
}
$row = $query->fetch_assoc();