gpt4 book ai didi

php - 如何在类之外显示来自数据库的数据

转载 作者:行者123 更新时间:2023-11-29 12:15:07 24 4
gpt4 key购买 nike

我很困惑如何显示类数据。

我有包含条目的数据库,并且我在类中创建了一个 sql 请求:

class Posts 
{

public function getPosts ( ) {

$returnValue = FALSE;


$query = "SELECT * FROM posts ORDER BY post_modified";

try {
$pdoCore = Core::getInstance();
$pdoObject = $pdoCore->dbh->prepare($query);

if ( $pdoObject->execute() ) {

$pdoObject->setFetchMode(PDO::FETCH_ASSOC);


while ( $posts_row = $pdoObject->fetch() ) {

$this->posts[] = $posts_row;
}

$returnValue = TRUE;
}
}
catch ( PDOException $pe ) {
trigger_error( ' Veritabanindan bilgiler alinamadi. ' . $pe->getMessage() );
}

return $returnValue;

}
}

我正在尝试用此代码显示它

$posts = new Posts();

$posts->getPosts();


foreach ($posts as $key => $value) {
echo $value;
}

正如您所注意到的,我收到注意:数组到字符串转换错误,如果我将 $this->posts 声明为数组,则页面为空白。

你能解释一下在这种情况下应该如何检索数据吗?这种做法对吗?

谢谢。

最佳答案

在 foreach 中,$postsPosts 类的实例对象,因此尝试迭代 Posts 对象是没有意义的。相反,我会在 getPosts 方法中构建一个数组并返回它,而不是创建 posts 属性并返回 bool 值。

下面,$returnValue 是返回的本地数组。

public function getPosts (  ) {

$returnValue = array();

$query = "SELECT * FROM posts ORDER BY post_modified";

try {
$pdoCore = Core::getInstance();
$pdoObject = $pdoCore->dbh->prepare($query);

if ( $pdoObject->execute() ) {

$pdoObject->setFetchMode(PDO::FETCH_ASSOC);


while ( $posts_row = $pdoObject->fetch() ) {

$returnValue[] = $posts_row;
}

}
}
catch ( PDOException $pe ) {
trigger_error( ' Veritabanindan bilgiler alinamadi. ' . $pe->getMessage() );
}

return $returnValue;

}

然后是用法:

foreach ($posts->getPosts() as $key => $value) {
echo $value['post_title'];
}

关于php - 如何在类之外显示来自数据库的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29951728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com