2014-04-21 128 views
-1

我試圖查詢用戶級別,但我無法返回int。我不知道爲什麼,因爲當我回聲結果它給的,即「1」PHP中的SQL查詢不返回預期的結果

function lvl_chcek($username) 
{ 
    $db = new mysqli('localhost', 'root', 'root', 'idoctor_db'); 

    $lvl = $db->query(' 
    SELECT Level 
    FROM users 
    WHERE Login = "'.$username.'" 
    '); 

    echo $lvl->fetch_object()->Level; 

    return $lvl->fetch_object()->Level; 

} 

我也試過,但我得到NULL

function lvl_chcek($username) 
{ 
    $db = new mysqli('localhost', 'root', 'root', 'idoctor_db'); 

    $query = $db->query(' 
    SELECT Level 
    FROM users 
    WHERE Login = "'.$username.'" 
    '); 
    $result = mysql_query($query); 
    $array = mysql_fetch_assoc($result); 
    $lvl = $array['Level']; 

    echo $lvl; 

    return $lvl; 
} 
+7

在第一個例子中,'$ lvl'應該從哪裏奇蹟般地出現? –

+1

每次調用'fetch_object'都會獲取一行。第一次給它打電話會返回一個不同的結果,然後你第二次打電話給它。在你的第二段代碼中,你正在混合mysql和mysqli函數。 – deceze

回答

0

按mysqli的doc需要查詢之後你需要獲取結果。

試試這個:

function lvl_chcek($username) 
{ 
    $db = new mysqli('localhost', 'root', 'root', 'idoctor_db'); 

    $query = $db->query(' 
    SELECT Level 
    FROM users 
    WHERE Login = "'.$username.'" 
    LIMIT 1'); 

    $obj = $query->fetch_object(); 
    return $obj->Level; 

} 

它應該返回的用戶級別。