【问题标题】:error when searching posts from my database从我的数据库中搜索帖子时出错
【发布时间】:2021-04-22 13:48:43
【问题描述】:

我在数据库中搜索某些帖子时遇到错误。

它是这样说的:尝试在第 83 行获取非对象的属性“标题”

下面是它引用的代码,我对 PHP 和 PDO 还很陌生,所以请多多包涵。

$search = '%post%';
$sql = 'SELECT * FROM pages WHERE title LIKE ?';
$stmt = $conn->prepare($sql);
$stmt->execute([$search]);
$pages = $stmt->fetchAll();

foreach($pages as $page){
echo $page->title . '<br>' ;
}

【问题讨论】:

  • 你能分享$page的转储吗?

标签: php database pdo


【解决方案1】:

这返回一个数组而不是一个对象

$pages = $stmt->fetchAll();

试试

echo $page['title'] . '<br>' ;

【讨论】:

  • 是的,这有效,可能应该知道这一点,谢谢!
【解决方案2】:

默认情况下,$pages = $stmt-&gt;fetchAll(); 将返回数字 0 索引数组和列名 assoc 数组。

如果要返回对象,请使用此参数

$pages = $stmt->fetchAll(PDO::FETCH_OBJ);

或者,您可以在连接上设置一个属性,以通过运行将默认返回类型更改为对象

$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

那么当您执行$pages = $stmt-&gt;fetchAll(); 时,将返回一个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    相关资源
    最近更新 更多