警告:mysqli_free_result()再次

时间:2013-11-08 11:15:56

标签: php html mysql sql

这已被问了很多,但我似乎仍无法绕过它。

我收到此错误: 警告:mysqli_free_result()期望参数1为mysqli_result,布尔值在

中给出

在我的代码中,我有:

// Perform it
$result = mysqli_query($connection, $query);

if ($result) {
  // Success
  echo "<h1>Uploaded results to database</h1>";
} else {
echo "FAILURE: Couldn't perform query on database: " . mysqli_error($connection);
}


// Release
mysqli_free_result($result);

我读过的大多数其他解决方案都说这是因为查询可能失败了,但事实并非如此,因为我从查询中测试返回的数据以查看它是否存在,它确实存在,因此标记被执行。为什么我不能释放呢?当我使用它时,我以为我应该总是发布返回的数据?

感谢所有人!

3 个答案:

答案 0 :(得分:3)

您应该查看the manual

  

失败时返回 FALSE 。对于成功的SELECTSHOWDESCRIBEEXPLAIN个查询mysqli_query()将返回mysqli_result个对象。对于其他成功的查询 mysqli_query()将返回 TRUE

我的猜测是您正在使用UPDATE查询 - 因此您会收到 TRUE (布尔值)返回。您只能对返回mysqli_free_result对象的查询使用mysqli_result

要重新进行迭代,如果您使用SELECTSHOWDESCRIBEEXPLAIN查询并且查询成功运行,您可以使用{{1 }}。

如果您使用上述4之外的任何内容(例如mysqli_free_resultINSERT),则无法使用UPDATE,因为结果始终为 TRUE < / strong>(如果成功)或 FALSE (如果失败)。

答案 1 :(得分:0)

执行查询时生成错误时会发生这种情况 因此,$ result将具有布尔值false 您应该尝试释放内部if子句

有关详细信息,请参阅official documentation

中的“程序样式”示例

答案 2 :(得分:0)

使用此: $result->close();