2015-04-03 25 views
2

现在我有一个connect.php文件例如为:何时必须关闭mysqli(数据库)连接?

$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文件,我使用“包括‘connect.php’;”

对于W3Schools上的实例,它们为每个查询创建一个新连接,然后在使用后关闭它。看到这里:w3schools.com:我不知道他们是否只是为了表达目的,或者如果这是最好的做法。

问题是,什么是最佳实践?我必须在每次选择后关闭连接,然后为下一个查询建立一个新连接?如果不是,我什么时候最终不得不关闭连接?在所有查询的PHP文件的结尾?

谢谢

回答

4

来自php.net网站的引用。

“脚本执行结束时,会自动销毁打开的连接(以及类似的资源)。但是,您应该在不再需要时立即关闭或释放所有连接,结果集和语句句柄。将有助于更快地将资源返回给PHP和MySQL。“

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

编辑: 你问的时候,对不起overread说。 希望这仍然是有用的。

2

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

0

最佳做法是使用footer.php中的关闭功能

+0

不确定这一点。如果你在header.php中完成了SQL,那么你应该关闭SQL。 – 2015-04-03 17:47:36

+0

然后,您需要在每个文件中一次又一次写入mysqli_close()。而是把它放在'页脚文件'中。 – varunsinghal 2015-04-03 17:52:33

+0

正如@Thais已经提到的那样,PHP在脚本执行结束时自动销毁打开的连接。因此,在脚本的最后关闭mysql有点多余。关闭连接可以重新分配资源。 – 2015-04-03 17:56:29