2013-05-12 25 views
0

我有以下功能:從簡單的函數返回數組爲空

function getUser($user_id){ 

    $mysqli = dbConnect(); 

    $gu = "select * from users where user_id = '$user_id'"; 
    $ru = $mysqli->query($gu); 

    $user = $ru->fetch_array(); 

    return $user; 
} 

被稱爲例如:

$user_id = $_SESSION[user_id]; 

getUser($user_id); 

然後我想簡單地回聲字段我想,例如名稱。但是,當我嘗試以下時,它將返回空

echo "users name is $user['name']"; // returns: users name is 

有沒有更好的方法來做到這一點?

UPDATE也試過以下,但仍然是空的:

function getUser($user_id){ 

    $mysqli = dbConnect(); 

    $gu = "select * from users where user_id = '$user_id'"; 
    $ru = $mysqli->query($gu); 

    $user = array(); 
    while($row = $ru->fetch_array()) { 
     $user[] = $row; 
    } 

    return $user; 
} 
+1

你不存儲)的getUser的'結果('。檢查@CodeBird – hek2mgl 2013-05-12 20:14:43

+0

的答案已發佈的評論/答案是正確的。其他一些事情:1)'user_id'列的類型是什麼?你正在查詢它,就像它是一個字符串類型。 2)你有沒有試過檢查你的'fetch_array()'調用的返回值? 'var_dump()'或'print_r()'如果你沒有調試器的話。 – marramgrass 2013-05-12 20:19:53

回答

2

您行:

getUser($user_id); 

應該是:

$user=getUser($user_id); 

這種方式,你會設置$用戶訪問getUser返回的數組,然後您可以使用它。

+0

太棒了,謝謝! – 2013-05-12 20:17:36

0

打印數組時,請取出單引號,你可以echo需要像:

echo "users name is $user[name]";