我习惯于将变量的使用保持在最低限度。所以我想知道以下是否有任何优势:
$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');
// Example 1
$query = $query->fetch_assoc();
// Example 2
$query_r = $query->fetch_assoc();
$query->free();
现在,如果我是对的,示例 1 应该更有效,因为当我重新分配它时 $query
是 unset
,这应该释放与其关联的任何内存。然而,有一种方法 (MySQLi_Result::free()
) 可以释放相关内存 - 这是同一回事吗?
如果我不调用 ::free()
来释放与结果关联的任何内存,而是通过重新分配变量来取消设置
,我在做同样的事情吗?我不知道如何记录这类事情 - 有人有什么想法吗?
最佳答案
manual似乎建议您仍应使用 free()
来释放内存。我相信原因是 free()
正在释放 MySQL 中的内存,而不是在 PHP 中。由于 PHP 无法对 MySQL 进行垃圾回收,因此您需要调用 free()
。
关于php - 使用 MySQLi - 更适合关闭查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515/