注意:未定义索引| PHP MySQL
我试图从MySQL中检索特定的表数据,并使用PHP显示信息。应该足够简单,可以检索数据并打印它,但只有在检索数据并尝试显示时,我才会得到未定义的索引 我正在检索信息,并根据标题中的用户名在配置文件页面中显示信息注意:未定义索引| PHP MySQL,php,mysql,pdo,Php,Mysql,Pdo,我试图从MySQL中检索特定的表数据,并使用PHP显示信息。应该足够简单,可以检索数据并打印它,但只有在检索数据并尝试显示时,我才会得到未定义的索引 我正在检索信息,并根据标题中的用户名在配置文件页面中显示信息 if(isset($_GET['username'])) { $username = $_GET['username']; $profile_uid = $Wall->useriD($username); $profile_
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;
}
问题是当我试图显示这样的信息时,我已经做了几个小时了,我被卡住了。任何潜在客户都很好。在您的
userDetails
功能中,修复最后一条语句:
return $data[0];
(您可能还想预先检查
$data[0]
是否存在,如果不存在,则返回NULL
,FALSE
或引发异常。)在用户详细信息
函数中,修复最后一条语句:
return $data[0];
(您可能还想预先检查
$data[0]
是否存在,如果不存在,则返回NULL
,FALSE
或抛出异常。)由于您只对一行感兴趣,请使用fetch()
而不是fetchAll()
:
由于您只对一行感兴趣,请使用
fetch()
而不是fetchAll()
:
执行
var\u转储($profile\u详细信息)
。您将看到该阵列中的可用内容。请注意,fetchAll()将返回一个数组数组,而不仅仅是一个数据行作为数组。是的,正如Marc B所说,所以它很可能是$profile\u details[0]['friendcount']
,但一定要检查。你们是对的。谢谢你的支持。我一直想知道[0]代表什么,是加载到标题中的当前id吗?执行var\u dump($profile\u details)
。您将看到该阵列中的可用内容。请注意,fetchAll()将返回一个数组数组,而不仅仅是一个数据行作为数组。是的,正如Marc B所说,所以它很可能是$profile\u details[0]['friendcount']
,但一定要检查。你们是对的。谢谢你的支持。我一直想知道[0]代表什么,是加载到标题中的当前id吗?