PDO:在非对象上调用成员函数fetch()

时间:2015-12-18 20:31:58

标签: php mysql pdo

我正在尝试像查询一样在查询基础上获取页面内容

这是我的home.php获取页面的代码

<?php foreach ($pages as $page) :?> 
<ul>
    <li><a href='<?php echo BASE_URL; ?>page.php?page=<?php echo $page['slug'] ?>'><?php echo $page['label'];?></a></li>
</ul>
<?php endforeach;?>

在我的 page.php 我有这段代码

if(empty($_GET['page'])){
        $page=FALSE;    }
    else{
        $slug= $_GET["page"];
        $page= $db->prepare("SELECT  * FROM pages WHERE slug=:slug");
        $page= $page->execute(['slug'=>$slug]);

        $page= $page->fetch(PDO::FETCH_ASSOC);

        var_dump($page);
    }

这是我的页面enter image description here

的表格

现在,当我转到page.php

时,我收到此错误
  

致命错误:在非对象上调用成员函数fetch()

请帮助我解决问题

1 个答案:

答案 0 :(得分:1)

您应该将变量命名为

stmt->execute()返回bool

所以

之后
$page = $page->execute(['slug'=>$slug]);

$pagebool方法。