0

我正在使用名为 getfreehosting.co.uk 的免费网络托管服务。max_user_connections是 5。每次我的页面加载时,它所做的第一件事就是调用从load.php我的数据库中获取条目的 a。我的问题是,如果我重新加载或刷新页面太多次,我会收到以下错误:

警告:mysql_connect() [function.mysql-connect]:用户 getfh_11654008 在第 3 行的 /home/vol9/getfreehosting.co.uk/getfh_11654008/htdocs/experiment/load.php 中已经有超过 'max_user_connections' 的活动连接连接:用户 getfh_11654008 已经有超过 'max_user_connections' 的活动连接

我知道我使用的是免费的虚拟主机,所以我可能无法增加max_user_connections. 无论如何我都不应该这样做,因为我只需要在任何给定时间运行我的页面的一个实例,所以理论上max_user_connections = 5对于我的目的来说已经绰绰有余了。起初我认为问题一定是我load.php被调用了太多次,导致太多sql_connections没有关闭。但是,我sql_close()在适当的地方打电话,但仍然设法超过max_user_connections

这是我的load.php

<?php
    $link = mysql_connect(MYSQL_HOSTNAME, MY_USERNAME, MY_PASSWORD);
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db(MY_DB, $link);

    $result = mysql_query(SELECT ONE ENTRY);
    if($r = mysql_fetch_assoc($result)) {
        print json_encode($r); // convert data to json and return it
        mysql_close($link);
    }
    else {
        mysql_close($link);
        die("Error: something went wrong");
    }
?>

出了什么问题,我该怎么办?

4

1 回答 1

3

回答:

您可以研究两件事:

  1. mysql_close() - 系统可能正在等待几秒钟来关闭连接,因为你没有告诉它。(即:计算机不会立即关门,直到你告诉它或直到一切都说完之后)。

$connection = mysql_connect(); mysql_close($连接);

连接时确保使用变量...

  1. 你可以试试php的mysql持久连接。本质上是一个与数据库的永久连接......这并不理想,但它也可以工作。它的语法与 mysql_connect() 几乎相同:

$connection = mysql_pconnect("localhost","mysql_user","mysql_pwd");


中学:

如果您有兴趣,我可以为您提供更好的 php/mysql 开发环境(免费,没有任何义务)... 100% 您的选择,只是想帮助您。


咆哮:

我不明白为什么这里的人们坚持告诉别人使用 PDO,但不帮助解决问题......人们将使用他们想要使用的任何东西,直到他们学会了更好的方法。击败 PDO 马不会让人们更快地采用它......

于 2013-04-12T00:52:59.773 回答