【问题标题】:PDO :Call to a member function fetch() on a non-objectPDO:调用非对象上的成员函数 fetch()
【发布时间】:2016-03-25 15:03:57
【问题描述】:

我正在尝试像这样基于查询获取页面内容

这是我获取页面的 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);
    }

这是我的页面表

现在当我转到 page.php 时出现此错误

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

请帮我解决

【问题讨论】:

  • 为什么在我努力显示我的代码/数据库时投反对票?我应该在这里问问题还是你们希望专家在这里把一切都完美?

标签: php mysql pdo


【解决方案1】:

您应该正确地命名变量。

stmt-&gt;execute() 返回bool

之后

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

$pagebool 并且有 no 方法。

【讨论】:

  • 所以我应该使用 $page->execute(['slug'=>$slug]);然后 $page= $page->fetch(PDO::FETCH_ASSOC);好吗?
猜你喜欢
  • 2011-10-16
  • 1970-01-01
  • 2011-03-21
  • 2012-08-21
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多