【问题标题】:When do I have to close mysqli (Database) connection?我什么时候必须关闭 mysqli(数据库)连接?
【发布时间】:2015-04-03 17:41:28
【问题描述】:

目前,我有一个 connect.php 文件,例如

$mysql_host = "";
$mysql_database = "";
$mysql_user = "";
$mysql_password = "";

$con = new mysqli(
    $mysql_host,
    $mysql_user,
    $mysql_password,
    $mysql_database
);

// Check connection
if ($con->connect_error) {
    die("Connection failed: " . $con->connect_error);
}

在所有其他使用 MySQL 查询的 PHP 文件中,我使用“include 'connect.php';”

对于 W3Schools 上的实例,它们为每个查询创建一个新连接,然后在使用后关闭它。见这里:w3schools.com:我不确定他们这样做是否只是为了显示目的,或者这样做是否是最佳做法。

是否必须在每次选择后关闭连接,然后为下一个查询建立一个新连接?如果没有,我什么时候最终必须关闭连接?包含所有查询的 PHP 文件的末尾?

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    来自 php.net 网站的引述。

    打开的非持久 MySQL 连接和结果集在其对象被销毁时会自动关闭。显式关闭打开的连接并释放结果集是可选的。但是,如果脚本在获得结果后仍有大量处理工作要做,最好在脚本完成所有数据库操作后立即关闭连接。

    来源:http://php.net/manual/en/mysqli.close.php

    【讨论】:

      【解决方案2】:

      当您在该页面上使用完毕后关闭连接。如果你有,比如说,一个博客,你用来发布它的按钮将启动打开连接的代码,对连接做一些工作(比如将它添加到你的数据库和或在页面上显示它)然后它会关闭连接,这样它就不会打开超过它需要的时间。但是,当您再次单击该按钮时,它将重新开始该过程,仅在需要时使用资源。

      【讨论】:

        【解决方案3】:

        最佳实践是在footer.php中使用close函数

        【讨论】:

        • 不确定。如果你在 header.php 中完成了 SQL,那么你应该关闭 SQL。
        • 那么你需要在每个文件中一次又一次地编写mysqli_close()。而是将其放在“页脚文件”中。
        • 正如@Thais 已经提到的,PHP 会在脚本执行结束时自动销毁打开的连接。所以在脚本的最后关闭 mysql 有点多余。关闭您的连接可以重新分配您的资源。
        猜你喜欢
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 2013-12-27
        • 2014-09-14
        • 1970-01-01
        • 2015-03-02
        相关资源
        最近更新 更多