0
URL參數我有一個新聞的管理頁面,其中包括以下標記:mysqli的說法不工作時存在
<ul>
<?php newsArchive(); ?>
</ul>
的新聞檢索功能如下:
function newsArchive(){
global $mysqli;
$newsArchive = $mysqli->prepare('SELECT news_id,news_title,news_date FROM news ORDER by news_id DESC');
$newsArchive->execute();
$newsArchive->bind_result($archiveID,$archiveTitle,$archiveDate);
while ($newsArchive->fetch()) {
$archiveDate = date('M Y', strtotime($archiveDate));
echo
'<li class="clear">'.
'<a class="left" href="news?edit-news='.$archiveID.'">'.$archiveTitle.'</a>'.
'<span class="right">'.$archiveDate.'</span>'.
'</li>';
}
}
現在,這一切工作正常,除非我點擊上面的PHP生成的一個鏈接,這個鏈接將我帶到最後帶有URL參數的同一頁面。例如
mydomain.com/news?edit-news=1
然後我得到的錯誤:Fatal error: Call to a member function execute() on a non-object in
這究竟是爲什麼?這是運行相同腳本的同一頁面。沒有URL參數就可以正常工作,但這些參數不應該干擾新聞檔案。
這意味着'prepare'語句不會返回有效的'mysqli_stmt'。使用['$ mysql-> error'](http://www.php.net/manual/en/mysqli.error.php)檢索最後一條錯誤消息。順便說一句,輸出數據到HTML標記時總是使用'htmlspecialchars',否則你的代碼容易受到XSS的攻擊。 –
那麼當你點擊一篇新聞文章時,這個函數的功能在哪裏 –
如果你使用if($ newsArchive = $ mysqli-> prepare('SELECT news_id,news_title,news_date FROM news ORDER by news_id DESC')''你會執行只有當查詢是正確的。 – Manolo