MySQL访问超时错误

时间:2016-07-07 20:28:38

标签: php mysql

确定。我是PHP和MySQL的新手,我遇到了问题。我有一个网站,edlineplus.x10host.com。我要做的是给出一个IP地址,用户名和密码...检查IP是否在数据库中' auto_login' - 如果是,请编辑关联的用户名和密码,如果不是,请添加包含IP及其数据的新行。当我从我的计算机访问该站点时,一切正常,但当我尝试从另一台计算机访问该站点时......加载需要很长时间甚至给我错误:"致命错误:最长执行时间行中超过30秒[在下面的代码中第4行和第7行之间交替]"。我不明白为什么会这样。作为参考,我使用x10hosting.com来托管网站,他们有一个政策"免费托管帐户不允许远程访问" (是)我有的)。但是,不能进行“远程访问”。问题只适用于我从远程服务器做某事......我正在做的是将用户在我的网站上输入的数据发送到处理它的php文件。此外,'远程访问'问题阻止我甚至从另一台计算机连接到数据库?但是没有连接到数据库本身。任何有关如何修复的帮助都会很棒....我用Google搜索了如何解决这些问题,而且我不知道该怎么做。

$results = mysqli_fetch_assoc(mysqli_query($connection, "SELECT `Identification Number`, `IP Address`, `Username`, `Password` FROM `subscribed_users` ORDER BY `Identification Number`"));

        $ip_address_found = false;

        while ($results) {
          $temp_identification_number = $results['Identification Number'];
          $temp_ip_address = $results['IP Address'];
          $temp_username = $results['Username'];
          $temp_password = $results['Password'];

          if ($ip_address == $temp_ip_address) {
            $ip_address_found = true;

            $protected_username = mysqli_real_escape_string($username);
            $protected_password = mysqli_real_escape_string($password);

            mysqli_query($connection, "UPDATE `subscribed_users` SET `Username` = '$protected_username', `Password` = '$protected_password' WHERE `subscribed_users`.`Identification Number` = $temp_identification_number;");

            break;
          }
        }

        if (!$ip_address_found) {
          $protected_username = mysqli_real_escape_string($username);
          $protected_password = mysqli_real_escape_string($password);

          mysqli_query($connection, "INSERT INTO `subscribed_users` (`Identification Number`, `IP Address`, `Username`, `Password`) VALUES (NULL, '$ip_address', '$protected_username', '$protected_password');");
        }

        mysqli_close($connection);

1 个答案:

答案 0 :(得分:1)

首先,您应该将查询分开,如下所示:

$query = mysqli_query($connection, "SELECT `Identification Number`, `IP Address`, `Username`, `Password` FROM `subscribed_users` ORDER BY `Identification Number`");

然后更改您的while循环:

while ($results = mysqli_fetch_assoc($query))

mysqli_fetch_assoc()函数一次只能获取一行。所以基本上你无限期地在同一行上循环,导致你的错误。