警告:mysqli_fetch_assoc()期望参数1为mysqli_result,给定对象

时间:2015-02-02 16:21:55

标签: php sql arrays mysqli prepared-statement

我收到此错误:

警告:mysqli_fetch_assoc()要求参数1为mysqli_result,对象为第14行上的\ Views \ item.view.php

这是一个准备好的声明,它返回1行。但是我无法从中获取任何数据。我在这里尝试了很多其他问题的解决方案,但是他们没有工作。我觉得我错过了一些小事。

这是item.php的一部分

$id = $_GET['id'];
$data = $item->getItem($id);
require 'Views/item.view.php';

这是item.class.php

public function getItem($id){
        include('/../config.php'); //contains the $mysqli

        $result = $mysqli->prepare("SELECT * FROM item WHERE id = ?") ;

        $result->bind_param("i", $id);

        $result->execute();


        if (!$result ) {
            return false;
        }
        return $result;

    }

视图

$row = mysqli_fetch_assoc($data);
                        $row['title'];
编辑:我也试过

while($post = $data->fetch_assoc()){ 

   $post['title'];
}

Wich给出 致命错误:调用未定义的方法mysqli_stmt :: fetch_assoc()

包含config.php,参数隐藏

$mysqli = new mysqli(adress, username, password, "trp");

EDIT2:item.class.php中的此方法可以正常工作

   public function getItems(){

    include('/../config.php');

    $sql ="SELECT * FROM item";
    $result = $mysqli->query($sql);

    if (!$result ) {
        return false;
    }
    return $result;

}

在视图中

while($post = $data->fetch_assoc()){ 
$post['id']
}

编辑: 得到它

$result = $result->get_result();

并在视图中

    while($post = $data->fetch_assoc()){ 

        echo $post['subject'];
}

2 个答案:

答案 0 :(得分:1)

Welp,我让它与

一起工作
$result = $result->get_result(); 

感谢您的帮助!

答案 1 :(得分:0)

您必须在执行$ result.after

之前设置参数
$result->bind_param("i", $id);

你必须设置$ id值..然后你必须运行

$result->execute();

如果您需要更多信息,请查看此链接并获得更清晰的想法.. http://www.w3schools.com/php/php_mysql_prepared_statements.asp