2017-08-06 109 views
-1

我運行PHP 7.0,並連接到MySQL數據庫匹配在下面的查詢記錄:mysqli_fetch_row和SELECT COUNT

$query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'"); 
$row = mysqli_fetch_row($query); 
print_r($row[0]); 

打印輸出1,像預期的那樣,只有一個記錄匹配用戶名。

但是,下面的函數返回false

function user_exists(){ 
$exists_query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'"); 
$row = mysqli_fetch_row($exists_query); 
return ($row[0] == 1) ? True : False; 
} 

但我希望它是真的。我濫用提取功能嗎?

+0

在你的'php.ini'文件中〜'error_reporting = E_ALL'和'display_errors = On'。 – Phil

回答

-1

你的第一個print_r語句輸出到底是什麼? 它應該打印一個數組,而不是一個整數。 $row是一組數組。 所以$row[0]不會是'1'但是像array('1')

+0

當你有這樣的基本問題時,使用'var_dump'玩。例如。 'var_dump($ row)'和'var_dump($ row [0])'來查看這些變量包含的內容。 – trs

-1

我認爲這是因爲$conn無法訪問。試試這個

function user_exists(){ 
    global $conn; 
    $exists_query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'"); 
    $row = mysqli_fetch_row($exists_query); 
    return ($row[0] == 1) ? True : False; 
} 

編輯: 正如@trs提到的,你應該考慮你的$row[0]輸出。

+1

你說'$ conn'無法訪問,然後產生一個答案,其中'$ conn'仍然不可訪問 – Phil

+0

我複製了代碼,但在寫答案時,完全忘了添加'global $ conn'。我的錯 – Junaid