2015-12-19 31 views
1

沒有發現我有以下代碼:呼應文本,如果用戶在數據庫[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如果用戶名不是在數據庫中。我嘗試過很多東西,但都沒有解決。希望這裏有人能幫忙。

回答

2

您需要檢查查詢是否返回了任何行。像這樣的東西應該工作:

<?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; 
} 
?> 
+0

你是對的;抱歉!似乎很奇怪不會使用PDO。 – TwoStraws

+0

並非每個用戶都使用PDO。無論如何+1 –

+0

嗯,是的,我意識到這一點。儘管在這裏它肯定會幫助避免Little Bobby Tables使用該SELECT查詢來訪問。 – TwoStraws

3

運行這段代碼$查詢之後

if(mysqli_num_rows($query) > 0){ 
    while($row = mysqli_fetch_array($query)) { 
     echo "<p>Your API Key: " . $row['apikey'] . "</p>"; 
    } 
} else { 
    echo $nokey; 
} 
1
<?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."; 
    } 

?> 

試試這個。