如何在多次重新加载/刷新页面时防止超出max_user_connections?

时间:2013-04-12 00:04:34

标签: php mysql

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

  

警告:mysql_connect()[function.mysql-connect]:用户getfh_11654008   已经有超过' max_user_connections'活跃的联系   /home/vol9/getfreehosting.co.uk/getfh_11654008/htdocs/experiment/load.php   第3行无法连接:用户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");
    }
?>

出了什么问题,我应该怎么做?

1 个答案:

答案 0 :(得分:3)


解答:

您可以研究两件事:

  1. mysql_close() - 可能是系统正在等待几秒钟才能关闭连接,因为你没有告诉它。 (IE:计算机不会立即关闭门,直到你告诉它或直到完成所有事情之后)。
  2. $ connection = mysql_connect(); mysql_close($连接);

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

    1. 您可以尝试php的mysql持久连接。本质上是与数据库的永久连接...它不是理想的,但它也可以工作。它的语法与mysql_connect()几乎相同:
    2. $ connection = mysql_pconnect(“localhost”,“mysql_user”,“mysql_pwd”);


      SECONDARY:

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


      RANT:

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