我运行了几分钟前制作的脚本,但仍然没有完成运行.
现在它有了,我得到了500内部服务器错误.
编辑---错误发生在第126行,这是while循环的端口:
while ($row == mysql_fetch_assoc($query)) {
mysql_query("DELETE FROM `Likes` WHERE `accountID` = '$id'");
}
Run Code Online (Sandbox Code Playgroud)
请问你能告诉我是什么导致我的脚本这么慢?
if ($param == "closeAccount") {
$username = NULL;
$password = NULL;
$emailAdd = NULL;
$id = NULL;
if (isset($_GET['username'])) {
$username = $_GET['username'];
}
else {
exit("No username is set");
}
if (isset($_GET['password'])) {
$password = md5($_GET['password']);
}
else {
exit("No password is set");
}
if (isset($_GET['emailAddress'])) {
$emailAdd = $_GET['emailAddress'];
}
else {
exit("No email address is set");
}
$query = mysql_query("SELECT * FROM `Accounts` WHERE `Username` = '$username' AND `Password` = '$password' AND `Email Address` = '$emailAdd'");
if (mysql_num_rows($query) < 1) {
exit("Account doesn't exist");
}
while ($row = mysql_fetch_assoc($query)) {
$id = $row["id"];
}
$query = NULL;
$query = mysql_query("SELECT `id` FROM `Comments` WHERE `accountID` = '$id'");
while ($row = mysql_fetch_assoc($query)) {
mysql_query("DELETE FROM `Comments` WHERE `accountID` = '$id'") or die(mysql_error());
}
$query = NULL;
$query = mysql_query("SELECT `id` FROM `Likes` WHERE `accountID` = '$id'");
while ($row == mysql_fetch_assoc($query)) {
mysql_query("DELETE FROM `Likes` WHERE `accountID` = '$id'");
}
$query = NULL;
$query = mysql_query("SELECT `id` FROM `Posts` WHERE `accountID` = '$id'");
while ($row == mysql_fetch_assoc($query)) {
mysql_query("DELETE FROM `Posts` WHERE `accountID` = '$id'");
}
$query = NULL;
$query = mysql_query("DELETE FROM `Accounts` WHERE `Username` = '$username' AND `Password` = '$password' AND `Email Address` = '$emailAdd'");
exit("Closed");
}
Run Code Online (Sandbox Code Playgroud)
看来你有很多冗余.我没有你的直接数据库,所以我可能会略微关注你的结构如何,但你可以从跳过下半部分的SELECT语句中受益.
例:
$query = mysql_query("SELECT * FROM `Accounts`
WHERE `Username` = '$username' AND `Password` = '$password'
AND `Email Address` = '$emailAdd'");
if (mysql_num_rows($query) < 1) {
exit("Account doesn't exist or wrong password entered");
}
$row = mysql_fetch_assoc($query);
$id = $row["id"]
$query = NULL;
mysql_query("DELETE FROM `Comments` WHERE `accountID` = '$id'");
mysql_query("DELETE FROM `Likes` WHERE `accountID` = '$id'");
mysql_query("DELETE FROM `Posts` WHERE `accountID` = '$id'");
mysql_query("DELETE FROM `Accounts` WHERE `id` = '$id'");
Run Code Online (Sandbox Code Playgroud)