如何解决注意:尝试在第25行的C:\ xampp \ htdocs \ twitter \ core \ classes \ follow.php中访问类型为bool的值的数组偏移量
一切似乎都正常,但出现错误:
我在我的follow.PHP和profile.PHP中检查了拼写错误,甚至重新输入了代码的主要部分,但无法找出问题所在。 这是我的follow.PHP第25行
if($data['reciever'] == $profileID)
这是我的follow.PHP
<?PHP
class Follow extends User
{
function __construct($pdo)
{
$this->pdo = $pdo;
}
public function checkFollow($followerID,$user_id)
{
$stmt = $this->pdo->prepare("SELECT * FROM `follow` WHERE `sender` = :user_id AND `reciever` = :followerID");
$stmt->bindParam(":user_id",$user_id,PDO::ParaM_INT);
$stmt->bindParam(":followerID",$followerID,PDO::ParaM_INT);
$stmt->execute();
return $stmt->fetch(PDO::FETCH_ASSOC);
}
public function followBtn($profileID,$user_id)
{
$data = $this->checkFollow($profileID,$user_id);
if($this->loggedIn() === true)
{
if($profileID != $user_id)
{
if($data['reciever'] == $profileID)
{
//Following Button
echo "<button class='f-btn following-btn follow-btn' data-follow='".$profileID."'>Following</button>";
}
else
{
//follow button
echo "<button class='f-btn following-btn follow-btn' data-follow='".$profileID."'><i class='fa fa-user-plus'></i>Follow</button>";
}
}
else
{
//edit button
echo "<button class='f-btn' onclick=location.href='profileEdit.PHP'>Edit Profile</button>";
}
}
else
{
echo "<button class='f-btn' onclick=location.href='index.PHP'><i class='fa fa-user-plus'></i>Follow</button>";
}
}
}
?>
错误状态:
尝试访问类型为bool的值的数组偏移量
这发生在follow.PHP的第25行
因此,在关注follow.PHP的第25行
if($data['reciever'] == $profileID)
根据该错误,我们试图访问数组中的一个元素,但是该对象实际上是一个布尔值。因此,$ data必须为布尔值。向上看几行,在第20行上有:
$data = $this->checkFollow($profileID,$user_id);
因此$ data由checkFollow的返回值设置。 checkFollow必须是一个布尔值。查看checkFollow,我们看到它返回以下内容:
return $stmt->fetch(PDO::FETCH_ASSOC);
布尔值必须来自$ stmt-> fetch。让我们看一下该方法的文档,其中指出:
我的数据库:
所以这就是错误的根源。为什么为什么fetch返回FALSE?也许查询未返回任何结果。也许数据库中没有匹配给定参数的行,但是我不知道如何实现它,因为我刚开始使用PHP。如果有人可以向我展示语法以更好地阐明它,将不胜感激。 谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。