Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:对非对象调用成员函数fetch_assoc()。尝试将产品添加到篮子中_Php_Sql - Fatal编程技术网

Php 致命错误:对非对象调用成员函数fetch_assoc()。尝试将产品添加到篮子中

Php 致命错误:对非对象调用成员函数fetch_assoc()。尝试将产品添加到篮子中,php,sql,Php,Sql,我正在制作一个在线商店,用户可以在那里订购一只鞋,然后将其传递到购物篮,然后用户可以结账。此时我遇到了一个致命错误:在“$row=$query->fetch_assoc();”这一行对非对象调用成员函数fetch_assoc()在checkoutAction.php文件中 checkoutAction.php <?php include "checkout.php"; $checkout = new Checkout; include

我正在制作一个在线商店,用户可以在那里订购一只鞋,然后将其传递到购物篮,然后用户可以结账。此时我遇到了一个致命错误:在“$row=$query->fetch_assoc();”这一行对非对象调用成员函数fetch_assoc()在checkoutAction.php文件中

checkoutAction.php

     <?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();