Php 我是';在存储mysql结果后,是否要释放它?

Php 我是';在存储mysql结果后,是否要释放它?,php,mysql,memory,mysqli,Php,Mysql,Memory,Mysqli,我想知道我是否需要调用$stmt->free_result(),在我用$stmt->store_result()存储它的结果之后?我可以在最后调用$stmt->close()吗 我之所以问这个问题,是因为当我调用$stmt->num\u rows时,我必须调用$stmt->store\u result(),正如这里所说:,但在他们的示例中,他们不调用$stmt->free\u result()。但是,在$stmt->store_result()上,他们会:。您不必明确释放结果,但如果愿意,您可以

我想知道我是否需要调用
$stmt->free_result()
,在我用
$stmt->store_result()
存储它的结果之后?我可以在最后调用
$stmt->close()


我之所以问这个问题,是因为当我调用
$stmt->num\u rows
时,我必须调用
$stmt->store\u result()
,正如这里所说:,但在他们的示例中,他们不调用
$stmt->free\u result()
。但是,在
$stmt->store_result()
上,他们会:。

您不必明确释放结果,但如果愿意,您可以。如果不这样做,则当语句句柄超出范围时,结果将被释放。

PHP在释放资源方面相当宽松。脚本退出时,脚本使用的任何资源(如SQL连接)都将被释放。尽管这是一种很好的编程实践,但除非您有许多并发用户,否则性能差别很小。

如果释放结果并关闭它,是否会提高性能?可能不会。无论如何,关闭它可以有效地释放结果。手册中写道:“mysqli_stmt_close()还解除分配语句句柄。如果当前语句有挂起或未读的结果,此函数将取消这些结果,以便执行下一个查询。”即使如此,您也不需要明确释放或关闭结果。一旦包含结果的变量超出范围或未设置,语句句柄和附加到它的所有内容都将消失。