[英]My PDO result doesn't work for displaying
我測試一個短裙。 我是php的新手。 我在news.php中有一個實體,一個管理器和一個用於顯示結果的頁面。 我用PDO執行查詢。 我有結果,但無法顯示。
實體是這樣的:
class News {
private $_id;
private $_titre;
private $_contenu;
public function id()
{
return $this->_id;
}
public function titre()
{
return $this->_titre;
}
public function contenu()
{
return $this->_contenu;
}
public function setId($id)
{
if(!is_int($id))
throw new Exception('L\'id n\'es pas de type int');
$this->_id = $id;
}
public function setTitre($titre)
{
if(!is_string($titre))
throw new Exception('Le titre n\'es pas de type string');
$this->_titre = $titre;
}
public function setContenu($contenu)
{
if(!is_string($contenu))
throw new Exception('Le contenu n\'es pas de type string');
$this->_contenu = $contenu;
}
}
我的新聞經理:
class newsManager
{
private $_db;
const SELECT_5LAST_NEWS = 'SELECT * FROM news ORDER BY id DESC LIMIT 0,5';
public function select5News()
{
$query = $this->_db->query(self::SELECT_5LAST_NEWS);
$query->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'News');
return $query->fetchAll(PDO::FETCH_CLASS, 'News');;
}
}
然后我測試我的看法:
require 'classes/newsManager.php';
$newsmngr = new newsManager(); $req = $newsmngr->select5News();
foreach ($req as $u) {
print_r($u); }
那就是:
News Object ( [_id:News:private] => [_titre:News:private] =>
[_auteur:News:private] => [_contenu:News:private] =>
[_dateAjout:News:private] => [_dateModif:News:private] => [id] => 3
[auteur] => howsDoingThis [titre] => where i am.... [contenu] => Lorem
ipsum dolor sit amet,(...)
我的結果已滿,但是當我嘗試顯示該代碼時,什么也沒有發生:
foreach($req as $news)
{
echo '<section><p class="titre"><a href="administration.php?id='.$news-id().'">'.$news->titre().'</a></p>';
echo '<p class="description">'.$news->contenu().'</p></section>';
}
任何人都可以幫助我。 謝謝
id和contenu是私有變量,您不能直接訪問它們。 您必須使用News類中定義的一些公共獲取方法
public function getId(){
return $this->_id;
}
然后,您可以通過類似於$news->getId();
的getter方法獲取數據$news->getId();
希望有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.