mysqli - fetch_Array错误:对非对象mysqli调用成员函数fetch_array()。

6

我是mysqli的新手,开始学习基础知识。就此而言,我尝试了fetch_array示例(http://php.net/manual/en/mysqli-result.fetch-array.php)。以下是我的代码。

$sqlGetChartData    =   "SELECT date, ratepersqft, location 
                          FROM ratepersqft
                         WHERE project_id = 1";
$runGetChartData    =   $mysqli->query($sqlGetChartData);

while($rowGetChartData = $runGetChartData->fetch_array(MYSQLI_BOTH))
    $arrGetChartData[]  =   $rowGetChartData;

    print "<pre>";
    print_r($arrGetChartData);
    exit();

我在while条件语句附近的代码行中遇到了这个错误:Call to a member function fetch_array() on a non-object。我尝试过在谷歌上搜索,但没有找到解决我的问题的结果。希望我的问题清晰明了。谢谢。

2个回答

16

这篇回答已经很久以前写的,现在已经不再相关。

自那时起,我学会了这个问题的正确解决方案,并在此答案中进行了说明。 请跳转到那里查看。


4
那是一种很好的解释方式,加一。 - Hanky Panky
你不觉得这个答案需要些修饰吗?我不同意提出的解决方案。也许我们应该将其作为 https://dev59.com/R2Eh5IYBdhLWcg3wNxPM#22662582 的重复内容关闭。 - Dharman
正如您所知,将其标记为重复并不会真正改变任何事情,但我会尝试做些什么。 - Your Common Sense

8
查询可能失败了,mysqli::query 返回了FALSE。因此,$runGetChartData 不是一个 mysqli_result 对象,而是一个 boolean,这就是你得到错误的原因。 根据文档:

失败时返回FALSE。对于成功的SELECT、SHOW、DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,