这个功能有什么问题?
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;
}
答案 0 :(得分:1)
问题是您要两次拨打fetchObject()
。您只需在if
中拨打一次,然后如果该值不匹配,您就可以在else
中再次呼叫它。但是您的查询只返回一行,因此第二行fetchObject()
会返回false
,而且这不是对象。您需要将结果保存在变量中。
此外,如果查询根本没有匹配任何内容,则初始fetchObject()
将返回false
,因此您也应该检查该内容。
$row = $thingResult->fetchObject();
if ($row && $row->leadertalks == "NULL") {
return "imgs/noimg.png";
} else {
return $row->leadertalks;
}