我需要使用mysql_close(连接)吗?

问题描述:

我在db.php中有以下代码来连接到我的数据库。我需要使用mysql_close(连接)吗?

<?php 
$DB_HOST  = "localhost"; 
$DB_NAME  = "db"; 
$DB_USER  = "user"; 
$DB_PASSWORD  = "pass"; 

$con = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD); 

if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db($DB_NAME , $con); 
?> 

在我的其他脚本中,我包括它使用:

include("db.php"); 

在某些情况下,我收到FF错误:

[10-MAR-2012十时47分20秒] PHP的警告:mysql_connect()函数[function.mysql-连接]:用户已经DB_USER具有比 'MAX_USER_CONNECTIONS' 在/home/user/public_html/sc/db.php第8行

活动连接更现在,我想知道如果我需要关闭连接重刑如:

<?php 
include("db.php"); 

//other stuff here 

mysql_close($con); 
?> 

顺便说一句,我有我的MySQL配置100 max_connections值。

我也研究有关持久连接,我相信我上面的代码不是一个持久连接。

+0

始终释放您不再需要的资源。 – 2012-03-10 23:19:32

+2

O_O ------------------------> – 2012-03-10 23:40:40

+0

看看屏幕的右侧。在完全相同的主题上列出了十几个问题 – 2012-03-10 23:41:37

不,如果您在脚本结尾处关闭它,这不会对您有所帮助。 mysql_close()仅用于在结束脚本之前释放资源,因为只要脚本执行结束,连接就会关闭

如果您不关闭连接,它们将保持打开状态并占用服务器上的宝贵资源。我猜那里也存在安全问题,你不想冒险让某人获得联系。
我更喜欢将我的数据库放在一个类中,并使用__construct创建连接,并使用__destruct关闭连接。如果你不熟悉类。创建和销毁类时,会自动调用__construct和__destruct。

编辑:
最初本来就是一个例子。但我在这里有一个基本的但是工作的mysql类https://*.com/a/9651249/1246494

它显示了mysql_close的用法以及我如何将它与类的析构函数关联起来。问题是,任何网络连接都应该关闭,不管你的数据库是在远程服务器上还是在本地主机上。