我正在澄清$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().
原文地址:https://www.jb51.cc/php/139715.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。