我有以下代码:
<?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.";
}
?>
试试这个。