【问题标题】:PDO - Notice: Trying to get property of non-objectPDO - 注意:试图获取非对象的属性
【发布时间】:2016-01-01 05:54:22
【问题描述】:

这个函数有什么问题?

function journeygetLeadertalks($link, $journeyid)
{
    $thingResult = $link->prepare("SELECT `leadertalks` FROM `journey` WHERE journeyid=:journeyid");
    $thingResult->execute([
        "journeyid" => $journeyid
    ]);


    if($thingResult->fetchObject()->leadertalks == "NULL")
        return "imgs/noimg.png";
    else
        return $thingResult->fetchObject()->leadertalks;
}

数据库图片: 这个功能每次都有效,当我将它用于leadertalks和leadertalksImage时,我该怎么办?

【问题讨论】:

  • 如何发布实际错误

标签: php pdo


【解决方案1】:

问题是您调用了两次fetchObject()。您在if 中调用它一次,然后如果值不匹配,则在else 中再次调用它。但是你的查询只返回一行,所以第二个fetchObject() 返回false,这不是一个对象。您需要将结果保存在变量中。

此外,如果查询根本不匹配任何内容,初始的 fetchObject() 将返回 false,因此您也应该检查一下。

$row = $thingResult->fetchObject();
if ($row && $row->leadertalks == "NULL") {
    return "imgs/noimg.png";
} else {
    return $row->leadertalks;
}

【讨论】:

  • 大声笑,谢谢伙计——我犯了一个愚蠢的错误。祝你有美好的一天:3
猜你喜欢
  • 1970-01-01
  • 2018-11-22
  • 2013-03-05
  • 2018-09-11
相关资源
最近更新 更多