просто в данном примере у тебя $id стопудово локальная переменная объявленная раньше, а не столбец строки из базы :D
почему я так думаю/уверен? все просто - $id у тебя выводится - остальные поля нет, итого? итого значит что у тебя код ваще нихуя не пашет, а $id откуда то раньше вылез работающий :)
смотри а вот так работает
function user_profile($id)
{
$this->id = $id;
$stmt = $this->db->prepare("SELECT id,username,fname,sname,about,city,sex,age,email,last_active,uniq FROM users WHERE id=? LIMIT 1");
$stmt->bind_param('i', $this->id);
$stmt->execute();
$stmt->bind_result($id, $username, $fname, $sname, $about, $city, $sex, $age, $email, $last_active, $uniq);
$stmt->fetch();
return array(
'id' => $id,
'username' => $username,
'fname' => $fname,
'sname' => $sname,
'about' => $about,
'city' => $city,
'sex' => $sex,
'age' => $age,
'email' => $email,
'last_active'=> $last_active,
'uniq'=> $uniq
);
$stmt->close();
}
и заметь я добавил только $stmt->fetch()
и кстати да, она была объявлена ранее