注意:未定义的索引| PHP MySQL

时间:2013-09-05 18:13:22

标签: php mysql pdo

我正在尝试从MySQL检索特定的表数据并使用PHP来显示信息。应该足够简单以检索数据并打印它,但只有在检索数据并尝试显示时才会得到未定义的索引。

我正在检索信息并根据标题中的用户名在个人资料页面中显示信息。

if(isset($_GET['username']))
{
    $username           = $_GET['username'];
    $profile_uid        = $Wall->useriD($username);
    $profile_details    = $Wall->userDetails($profile_uid);
    $friend_count       = $profile_details['friendcount']; //issue here
} else {
    header('Location:404.php');
}

我在$ friend_count = $ profile_details ['friendcount']上获得了未定义的索引;但我不确定为什么,我相信一切都正确检查但显然没有。以下是我如何获取信息。

public function useriD($username)
{
    $sth = $this->db->prepare("SELECT uiD FROM users WHERE username = :username AND status='1'");
    $sth->execute(array(':username' => $username));

    if($sth->rowCount() == 1)
    {
        $row = $sth->fetch();
        return $row['uiD'];
    } else {
        return false;
    }
}

public function userDetails($uiD)
{
    $sth = $this->db->prepare("SELECT * FROM users WHERE uiD = :uiD AND status='1'");
    $sth->execute(array(':uiD' => $uiD));

    $data = $sth->fetchAll();
    return $data;
}

问题是,当我试图显示这些信息时,我已经在那里待了几个小时而且我被卡住了。任何线索都会很棒。

2 个答案:

答案 0 :(得分:1)

由于您只对一行感兴趣,请使用fetch()代替fetchAll()

$data = $sth->fetch();

答案 1 :(得分:0)

userDetails函数中,修复最后一条语句:

return $data[0];

(您可能还需要预先检查$data[0]是否存在,如果不存在,则返回NULLFALSE或抛出异常。)