2014-04-21 86 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; 

} 

它应该返回的用户级别。