0

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

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

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

4

3 回答 3

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

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

  • unset($connection)清除指向 php 端结果的指针,但不对它指向的结果做任何事情。

于 2013-07-07T10:02:20.053 回答
1

附加功能unset()将允许垃圾收集清除已关闭$connection变量占用的内存,而且(很可能)您的应用程序代码if (isset(...))也会对该变量执行更多条件。

于 2013-07-07T10:00:43.207 回答
0

unset($connection)只会使 var$connection等于NULL. 如果你没有做unset,那么 var$connection仍然会指向一个 MySQL 链接标识符,在mysql_close(). 这有点迂腐;不管你是否unset$connectionvar 在mysql_close().

于 2013-07-07T09:59:16.817 回答