我不知道为什么,但以下PHP代码不起作用,但它也没有给我一个错误。
Mysql已经连接
$control = 0;
$abfrage = "SELECT * FROM youtuber WHERE username = '$user' AND url = '$url'";
$ergebnis = mysqli_query($verbindung,$abfrage);
while ($row = mysqli_fetch_object($ergebnis))
{
$control++;
}
if ($control != 0){
echo "<p class='text' style='color: red;'>Dieser Youtuber ist bereits eingetragen!";
}
else {
$eintrag = "INSERT INTO youtuber
(username,url)
VALUES
('$user','$url')";
$eintragen = mysqli_query($verbindung,$eintrag);
}
if ($eintragen == true){
echo "<p>Youtuber erfolgreich eingetragen du wirst nun weitergeleitet!</p>";
}
else {
echo "<p class='text' style='color: red;'>Fehler: System:
bitte Kontaktiere einen Administrator!</p>";
}
mysqli_close($verbindung);
}
}
?>
答案 0 :(得分:0)
与任何事情一样,如果你可以将它分解成更小的部分,并且一次一个地处理它们,它将帮助你找到问题的根源。
我查看了您的代码,并将我的评论正确地插入其中。除了一些缺少大括号,缺少</p>
和潜在的SQL注入漏洞之外,你认为它应该做什么呢?您应该将查询调试和/或打印到日志文件中以查看它们。
$control = 0;
$abfrage = "SELECT * FROM youtuber WHERE username = '$user' AND url = '$url'";
// as other answers have pointed out, this kind of query
// is a really bad idea. Think of what happens if $user
// is something like the following:
// ' or true; drop table youtuber; --
$ergebnis = mysqli_query($verbindung,$abfrage);
while ($row = mysqli_fetch_object($ergebnis)) {
$control++;
}
if ($control != 0) {
// if the control variable was incremented (a user exists)
echo "<p class='text' style='color: red;'>Dieser Youtuber ist bereits eingetragen!"; // here you don't close your paragraph element
} else {
// no user was found, create
$eintrag = "INSERT INTO youtuber (username,url) VALUES ('$user','$url')";
$eintragen = mysqli_query($verbindung,$eintrag);
}
if ($eintragen == true){
// the insert query was successful
echo "<p>Youtuber erfolgreich eingetragen du wirst nun weitergeleitet!</p>";
} else {
// the insert query failed
echo "<p class='text' style='color: red;'>Fehler: System: bitte Kontaktiere einen Administrator!</p>";
}
mysqli_close($verbindung);
// trailing braces -- what are these?
}
}