php - fatal error : Call to a member function fetch_assoc() on a non-object

标签 php mysqli

我正在尝试执行一些查询来获取有关某些图像的信息页面。我写了一个函数

function get_recent_highs($view_deleted_images=false)
{
    $lower = $this->database->conn->real_escape_string($this->page_size * ($this->page_number - 1));
    $query = "SELECT image_id, date_uploaded FROM `images` ORDER BY ((SELECT SUM( image_id=`images`.image_id ) FROM `image_votes` AS score) / (SELECT DATEDIFF( NOW( ) , date_uploaded ) AS diff)) DESC LIMIT " . $this->page_size . " OFFSET $lower"; //move to database class
    $result = $this->database->query($query);
    $page = array();
    while($row = $result->fetch_assoc())
    {
        try
        {
            array_push($page, new Image($row['image_id'], $view_deleted_images));
        }
        catch(ImageNotFoundException $e)
        {
            throw $e;
        }
    }
    return $page;
}

根据这些图像的受欢迎程度选择这些图像的页面。我写了一个Database处理与数据库和 Image 交互的类保存有关图像信息的类。当我尝试运行此程序时,出现错误。

Fatal error: Call to a member function fetch_assoc() on a non-object

$result是一个 mysqli 结果集,所以我很困惑为什么这不起作用。

最佳答案

那是因为您的查询中有错误。 MySQli->query()出错时将返回 false。将其更改为类似以下内容::

$result = $this->database->query($query);
if (!$result) {
    throw new Exception("Database Error [{$this->database->errno}] {$this->database->error}");
}

如果出现错误,应该抛出异常...

关于php - fatal error : Call to a member function fetch_assoc() on a non-object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224320/

相关文章:

php - php中的分页显示多个页面的数据

php - 如何将页面附加到自定义帖子类型

javascript - 无法将 php 变量作为参数传递给 javascript 函数

php - 全局检查 PHP stdClass 中的有效属性?

php - 一次将数组mysql插入数据库

php - 在一个查询中删除而不是使用循环和 ifs

php - 我应该使用 mysqli_real_escape string() 还是 mysql_real_escape_string() 来获取表单数据?

php - 如何使用日文字符管理数据库中的 ID

php - 停止重复插入

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?