【问题标题】:Why does MYSQL doesnt work?为什么MYSQL不起作用?
【发布时间】:2018-05-22 20:22:13
【问题描述】:

我不知道为什么,但是下面的 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);
}
}

?>

【问题讨论】:

标签: php mysql database mysqli connect


【解决方案1】:

与任何事情一样,如果您可以将其分解为更小的部分并一次解决它们,它将帮助您找到问题的根源。

我浏览了您的代码并将我的 cmets 放入其中。除了一些缺失的大括号、缺失的&lt;/p&gt; 和潜在的 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?
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 2013-05-03
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2017-11-06
    • 2011-04-06
    相关资源
    最近更新 更多