2017-08-04 36 views
-2

我有一个函数,如下,但是当我echo $user_data['first_name'];它弹出函数来选择的用户ID和输出选择的数据与mysqli的

未定义指数:first_name的。

任何人都可以帮忙吗?

$user_data = user_data($con, $user_id, $fields); 

echo $user_data['first_name']; 
// pop out error Undefined index: first_name. 



function user_data($con, $user_id, $fields) { 

    $data = array(); 
    $fields = implode(', ', $fields); 
    $result = mysqli_query($con, "SELECT $fields FROM users WHERE user_id= $user_id"); 
    while ($row = mysqli_fetch_assoc($result)) { 
     $data[] = $row; 
    } 

    return $data; 

} 

$con = new mysqli('localhost', 'username', 'password', 'database_name'); 

$fields = array('first_name', 'last_name','color'); 

$user_id = 1; 

$data = user_data($con, $user_id, $fields); 
+0

您没有回答答案。 –

+0

请注意SQL注入。你的代码很脆弱。 –

+0

@BjörnTantau请随时发表评论我的SQL注入教育我:) –

回答

0

试试这个:

echo $user_data[0]['first_name']; 
0

因为您将获得数组中的数据。所以你需要从其他的遍历。改变你的代码,如:

$user_data = user_data($con, $user_id, $fields); 
foreach($user_data as $user){ 
    echo $user['first_name']; 
} 
0

的连接是在给定的脚本中的最后一行创建,只有数据库可以访问后使用数组经过这么呼应的结果遍历循环像Foreach等。 在脚本的末尾添加以下行:

foreach($user_data as $user){ 
    echo $user['first_name']; 
}