PHP Conference Japan 2024

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()

参见

添加注释

用户贡献的注释 2 条注释

16
admin at ifyouwantblood dot de
16 年前
是的,如果您使用无缓冲查询并且尚未从 MySQL 中提取所有数据,则此函数可能会增加内存使用量。在这种情况下,MySQL API 存在问题:您希望释放结果,但不想关闭连接。现在 MySQL 只有在提取所有数据后才会接受另一个查询,因此 API 现在必须在调用 mysql_free_result() 时提取其余数据。

因此,只有在提取所有数据(并且需要它)时才使用无缓冲查询。
15
webmaster at bluesting dot co dot za
13 年前
mysql_query() 也为“OPTIMIZE TABLE”语句返回资源!
To Top