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

时间:2012-03-10 23:15:40

标签: php mysql

我在db.php中有以下代码连接到我的数据库。

<?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 10:47:20] PHP警告:mysql_connect()[function.mysql-connect]:用户db_user在/ home / user / public_html / sc /中已经有超过'max_user_connections'的活动连接第8行的db.php

现在,我想知道是否需要关闭连接,如:

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

//other stuff here

mysql_close($con);
?>

BTW,我的MySQL配置中有100个max_connections值。

我还研究了持久连接,我相信上面的代码不是持久连接。

2 个答案:

答案 0 :(得分:3)

不,如果您在脚本末尾关闭它,这将无济于事。如果您想在结束脚本之前释放资源,mysql_close()非常有用,因为一旦脚本执行结束,您的连接就会关闭

答案 1 :(得分:-1)

如果您不关闭连接,它们将保持打开并占用服务器上的宝贵资源。我猜也有安全点,你不想冒险让别人抓住连接 我更喜欢将我的数据库放在一个类中,并使用__construct来创建连接,并使用__destruct来关闭连接。如果您不熟悉课程。创建和销毁类时会自动调用__construct和__destruct。

编辑:
最初的意思是一个例子。但我在这里有一个基本但有效的mysql类https://stackoverflow.com/a/9651249/1246494
它显示了mysql_close的用法以及我是如何尝试将它与类析构函数联系起来的。关键是,应该关闭任何网络连接,无论您的数据库是在远程服务器上还是在本地主机上。

相关问题