我仍然試圖包裝我的頭圍繞PHP,所以很抱歉,如果這是一個簡單的錯誤(我一直在尋找相當長的一段時間,只能設法得到不同的錯誤,如「未定義的索引」)PHP,PDO,MySQL,注意:試圖獲取非對象的屬性
我試圖做的是有一個函數,將從表中獲取數據(它目前不包含很多,但將最終包含每個主網頁的所有內容)。它應該採取一個ID,然後給該頁面的正確的模板和內容(只是硬編碼的$頁面名稱在現在,直到我得到它的工作)
在我的Page類我有這個
class Page{
public $pageid = null;
public $pagetemplate = null;
public $pagetitle = null;
public $pagebody = null;
public function __construct($data=array()){
if(isset($data['page_id'])) $this->pageid = (int) $data['page_id'];
if(isset($data['page_template'])) $this->pagetemplate = (string) $data['page_template'];
if(isset($data['page_title'])) $this->pagetitle = (string) $data['page_title'];
if(isset($data['page_body'])) $this->pagebody = (string) $data['page_body'];
}
public static function getPageData($pageName){
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "SELECT page_template, page_title, page_body FROM pages WHERE page_id = :page_id LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':page_id', $pageName);
$stmt->execute();
$list = array();
while($row = $stmt->fetch()){
//$pageslug = $row['page_slug'];
$page = new Page($row);
$list[] = $page;
}
$conn = null;
return(array("results" => $list));
}
}
然後在我的索引我有
function homepage(){
$results = array();
$data = Page::getPageData(1);
$results['pages'] = $data['results'];
$template = $results['pages']->pagetemplate;
require($template);
}
的主頁功能是帶一個開關的情況下,但是,這樣的導航欄的變化給予的價值,我會改變這種狀況以後getPageData,這應該是如何加載不同的頁面。無論如何,我發現了以下錯誤:
注意:試圖讓非對象的屬性在C:\ XAMPP \ htdocs中\的index.php上線48
警告:要求():文件名不能第49行的C:\ xampp \ htdocs \ index.php中爲空。012: :\ XAMPP \ htdocs中\的index.php上線49
那麼,哪裏是48行? – sectus 2014-11-24 05:29:05
對不起, 48是$ template = $ results ['pages'] - > pagetemplate; 也更新第一篇文章,顯示所有的頁面類 – p3tch 2014-11-24 05:30:09