mysql_close()和unset()有什么区别?

时间:2013-07-07 09:56:35

标签: php mysql

我正在学习php和Mysql数据库。一切都很好。但是下面的代码让我感到困惑:

if(isset($connection)){
           mysql_close($connection);
           unset($connection);
}

据我所知,mysql_close()函数负责关闭连接。那么为什么在这里使用了额外的unset()函数呢?请解释一下。提前致谢。

3 个答案:

答案 0 :(得分:5)

  • mysql_close($connection) 关闭与$ connection关联的MySQL服务器的非持久连接。如果未指定$ connection,则使用上次打开的链接。

    - 此功能已弃用,请使用PDO或mysqli。

  • unset($connection) 清除指向php侧面结果的指针,但不对其指向的结果执行任何操作。

答案 1 :(得分:1)

额外的unset()将允许垃圾收集清理已关闭的$connection变量占用的内存,同时(很可能)您的应用程序代码会执行更多if (isset(...))个条件那个变量也是。

答案 2 :(得分:0)

unset($connection)只会使var $connection等于NULL。如果你没有执行unset,则var $connection仍将指向MySQL链接标识符,该标识符在mysql_close()之后无效。这有点迂腐;无论您是unset$connection var都不会在mysql_close()之后使用。