【问题标题】:Do I've to free mysql result after storing it?存储后我是否必须释放 mysql 结果?
【发布时间】:2010-06-25 01:20:12
【问题描述】:

我想知道在我用$stmt->store_result() 存储结果之后是否必须调用$stmt->free_result()?我可以直接打电话给$stmt->close()吗?

我之所以问这个问题是因为当我调用$stmt->num_rows 时,我必须调用$stmt->store_result(),如此处所述:http://www.php.net/manual/en/mysqli-stmt.num-rows.php,但在他们的示例中他们没有调用$stmt->free_result() .但是,在 $stmt->store_result() 上他们会这样做:http://www.php.net/manual/en/mysqli-stmt.store-result.php

【问题讨论】:

    标签: php mysql memory mysqli


    【解决方案1】:

    你没有明确释放结果,但如果你愿意,你可以。否则,当语句句柄超出范围时,结果将被释放。

    【讨论】:

    • 释放结果并关闭它会提高性能吗?
    • 可能不会。无论如何,关闭它可以有效地释放结果。来自手册:“mysqli_stmt_close() 还释放语句句柄。如果当前语句有挂起或未读的结果,此函数将取消它们以便执行下一个查询。”即使那样,您也不需要需要明确释放或关闭结果。一旦包含结果的变量超出范围或未设置,语句句柄和附加到它的所有内容都会消失。
    【解决方案2】:

    PHP 在释放资源方面非常宽松。当脚本退出时,脚本使用的任何资源(例如 SQL 连接)都将被释放。虽然这是一种很好的编程习惯,但除非你有很多并发用户,否则性能上的差异会很小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2012-01-02
      • 2012-11-21
      相关资源
      最近更新 更多