致命错误:非对象上的 fetch_assoc()
执行数据库查询时,您可能会遇到以下错误消息:
Fatal error: Call to a member function fetch_assoc() on a non-object
当对非对象调用 fetch_assoc() 方法时,通常会发生此错误mysqli_result 对象。
问题分析:
在提供的代码片段中,您可能编写了如下所示的函数:
function get_recent_highs(...){ $result = $this->database->query($query); while($row = $result->fetch_assoc()) {...} }
如果 $result 是非对象,则 fetch_assoc() 调用将失败。如果 SQL 查询中存在错误,导致 query() 返回 false 而不是结果对象,就会发生这种情况。
解决方案:
解决错误,请检查query()的返回值。如果返回 false,则抛出异常或相应地处理错误。例如:
function get_recent_highs(...){ $result = $this->database->query($query); if (!$result) { throw new Exception("Database Error"); } while($row = $result->fetch_assoc()) {...} }
通过捕获 query() 中的错误,可以确保只在有效的结果对象上调用 fetch_assoc(),从而防止非对象错误。
以上是为什么我在 PHP 数据库查询中收到'致命错误:非对象上的 fetch_assoc()”?的详细内容。更多信息请关注PHP中文网其他相关文章!