我正在使用MySQL PDO类。我想要争吵。它成功完成了这段代码。但如果没有数据。我得到'注意:试图在PDO中获得非对象的属性'
<?php
...
public static function getRow($query, $bindings = null)
{
if(!$stmt = self::query($query, $bindings))
return false;
$result = $stmt->fetch();
return $result;
}
$page = DB::getRow('SELECT * FROM page WHERE id = "homepage" ');
echo $page->content;
?>
如果可用的id数据“主页”。 输出:
“主页bla bla ...”;
如果没有数据。 输出:
“注意:尝试在第139行的/var/www/vhosts/kkkk.com/httpdocs/index.php中获取非对象的属性”
我该如何解决?
“我想在函数中找到解决方案”
答案 0 :(得分:1)
当没有数据$stmt->fetch
提取不 object
的内容时。这个东西肯定没有content
属性。
使用简单的检查,无论您是否有对象:
echo $page? $page->content : 'No content available';
// or more complicated if you don't want to output anything when there's no data:
if ($page) {
echo $page->content;
}
<强>更新强>
public static function getRow($query, $bindings = null, $property_name = '')
{
if(!$stmt = self::query($query, $bindings))
return false;
$result = $stmt->fetch();
if ($result) {
return $property_name? $result->$property_name : $result;
} else {
return false;
}
}
答案 1 :(得分:1)
如果你得到了结果,请检查一下:
if ($page) {
echo $page->content;
}