gpt4 book ai didi

php - $stmt->close() 与 $stmt->free_result()

转载 作者:IT老高 更新时间:2023-10-28 23:50:55 25 4
gpt4 key购买 nike

在完成准备好的 mysqli $stmt->close()$stmt->free_result() 之间的区别强>声明。


到目前为止我使用:

$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()另一个声明。

关于php - $stmt->close() 与 $stmt->free_result(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com