确定。我是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);
答案 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()
函数一次只能获取一行。所以基本上你无限期地在同一行上循环,导致你的错误。