如果在数据库[PHP]中找不到用户,则回显文本


Echoing text if user not found in database [PHP]

我有以下代码:

<?php
$conn = mysqli_connect('localhost', 'root', 'lol', 'api');
$name2 = $session->username;
$nokey = "You don't have an API key."; 
$query = mysqli_query($conn, "SELECT * FROM apikey WHERE username = '$name2';");
while($row = mysqli_fetch_array($query)) {
echo "<p>Your API Key: " . $row['apikey'] . "</p>";
}
?>

如果数据库中没有用户名,我很难让它回显$nokey。我尝试了很多方法,但都没有成功。希望这里有人能帮忙。

在$query 之后立即运行此代码

if(mysqli_num_rows($query) > 0){
    while($row = mysqli_fetch_array($query)) {
       echo "<p>Your API Key: " . $row['apikey'] . "</p>";
    }
} else {
   echo $nokey;
}

您需要检查查询是否返回了任何行。像这样的东西应该起作用:

<?php
$conn = mysqli_connect('localhost', 'root', 'lol', 'api');
$name2 = $session->username;
$nokey = "You don't have an API key."; 
$query = mysqli_query($conn, "SELECT * FROM apikey WHERE username = '$name2'");
if (mysqli_num_rows($query)) {
    while($row = mysqli_fetch_array($query)) {
        echo "<p>Your API Key: " . $row['apikey'] . "</p>";
    }
} else {
    // this is the new bit
    echo $nokey;
}
?>
<?php
    $servername = "localhost";
    $username = "root";
    $password = "lol";
    $dbname = "api"; 
    $conn = new mysqli($servername, $username, $password, $dbname);
    $name2 = $session->username;
    $sql = "SELECT * FROM apikey WHERE username = '$name2';";
    $query = $conn->query($sql);
    if ($query->num_rows > 0) {
        while($row = $query->fetch_assoc()) {
            echo "<p>Your API Key: " . $row['apikey'] . "</p>";
        }
    }
    else{
         echo "You don't have an API key.";
    }
?>

试试这个。