加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – $stmt-> close()vs $stmt-> free_result()

发布时间:2020-12-13 14:03:53 所属栏目:PHP教程 来源:网络整理
导读:我正在澄清$stmt- close()和$stmt- free_result()之间的差异,当完成一个准备好的 mysqli语句. 到目前为止,我使用: $mysqli = new mysqli(host,user,password,database);$stmt = $mysqli-prepare(sql statement);[...]$stmt-free_result();$mysqli-close();
我正在澄清$stmt-> close()和$stmt-> free_result()之间的差异,当完成一个准备好的 mysqli语句.

到目前为止,我使用:

$mysqli = new mysqli(host,user,password,database);
$stmt = $mysqli->prepare(sql statement);
[...]
$stmt->free_result();
$mysqli->close();

一切似乎都很好.
但是我看到很多程序员使用$stmt-> close而不是$stmt-> free_result().一旦我看到他们两个:

$stmt->free_result();
$stmt->close();
$mysqli->close();

那么我应该选择什么,在哪种情况下为什么?

$stmt-> free_result()释放与结果集相关的内存,而$stmt-> close()释放与准备语句相关的内存.随后调用$stmt-> close()将取消任何仍然存在的结果.

实质上,调用$stmt-> close()将提供与调用$stmt-> free_result()相同的效果,因为它也取消了结果集.但是调用$stmt-> free_result()不会清除准备语句使用的内存,在这种情况下,您必须使用$stmt-> close().

至于使用哪一个 – 可能有些情况下您打算使用已初始化的准备好的语句,但不再需要您当前拥有的结果集.在这种情况下,您将等待调用$stmt-> close()直到完成准备的语句,而是在执行另一个语句之前调用$stmt-> free_result().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读