mysql_free_result

(PHP 4, PHP 5)

mysql_free_result释放结果内存

警告

此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中被移除。应使用 MySQLiPDO_MySQL 扩展。另请参阅 MySQL: 选择 API 指南。此函数的替代方法包括

描述

mysql_free_result(资源 $result): 布尔值

mysql_free_result() 将释放与结果标识符 result 相关的所有内存。

mysql_free_result() 仅在您担心用于返回大型结果集的查询使用的内存量时才需要调用。所有相关的结果内存将在脚本执行结束时自动释放。

参数

result

要评估的结果 资源。此结果来自对 mysql_query() 的调用。

返回值

成功时返回 true,失败时返回 false

如果 result 使用的不是资源,则会发出级别为 E_WARNING 的错误。值得注意的是,mysql_query() 仅为 SELECT、SHOW、EXPLAIN 和 DESCRIBE 查询返回 资源

示例

示例 #1 mysql_free_result() 示例

<?php
$result
= mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
echo
'无法运行查询: ' . mysql_error();
exit;
}
/* 使用结果,假设我们之后不再需要它 */
$row = mysql_fetch_assoc($result);

/* 现在我们释放结果并继续执行我们的脚本 */
mysql_free_result($result);

echo
$row['id'];
echo
$row['email'];
?>

注释

注意:

为了向后兼容性,可以使用以下已弃用的别名:mysql_freeresult()

另请参阅

添加注释

用户贡献的注释 3 个注释

webmaster at bluesting dot co dot za
13 年前
mysql_query() 也为 "OPTIMIZE TABLE" 语句返回资源!
admin at ifyouwantblood dot de
16 年前
是的,如果您使用的是非缓冲查询,并且您还没有从 MySQL 中获取所有数据,那么此函数可能会增加内存使用量。在这种情况下,MySQL API 会出现问题:您想释放结果,但不想关闭连接。现在 MySQL 只有在所有数据都已获取后才会接受另一个查询,因此 API 现在必须在调用 mysql_free_result() 时获取剩余的数据。

因此,只有在您获取所有数据(并且需要它)时才使用非缓冲查询。
匿名
17 年前
如果您看到诸如 "警告:未知:6 个结果集未释放。使用 mysql_free_result 释放使用 mysql_query() 在 Unknown 中的第 0 行请求的结果集" 之类的警告,并且想要关闭它们,请在您的 php.ini 中将 mysql.trace_mode 设置为 Off
To Top