【问题标题】:Do I need to use mysql_close(connection)?我需要使用 mysql_close(connection) 吗?
【发布时间】:2012-03-10 23:15:40
【问题描述】:

我在 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 错误:

[2012 年 3 月 10 日 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);
?>

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

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

【问题讨论】:

  • 始终释放您不再需要的资源。
  • O_O ------------------------>
  • 查看屏幕右侧。在完全相同的主题上列出了十几个问题

标签: php mysql


【解决方案1】:

不,如果您在脚本末尾关闭它,这对您没有帮助。 mysql_close() 仅在您想在结束脚本之前释放资源时很有用,因为一旦脚本执行结束,您的连接就会关闭

【讨论】:

    【解决方案2】:

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

    编辑:
    本来是想举个例子的。但我在这里有一个基本但有效的 mysql 类https://stackoverflow.com/a/9651249/1246494

    它显示了 mysql_close 的用法以及我如何尝试将其与类析构函数相关联。关键是,任何网络连接都应该关闭,无论您的数据库是在远程服务器上还是本地主机上。

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      相关资源
      最近更新 更多