0

次のマークアップを含むニュース管理ページがあります。

<ul>
  <?php newsArchive(); ?>
</ul>

newsArchive 関数は次のようになります。

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 によって生成されたリンクの 1 つをクリックすると、末尾に URL パラメータがある同じページに移動する場合を除いて、これですべて正常に動作します。例えば

mydomain.com/news?edit-news=1

次に、エラーが発生します。Fatal error: Call to a member function execute() on a non-object in

なぜこうなった?同じスクリプトを実行している同じページです。URL パラメーターがなくても問題なく動作しますが、これらのパラメーターがニュース アーカイブに干渉しないようにする必要があります。

4

1 に答える 1

0

したがって、問題は実際にはページ上の他の準備ステートメントにあったようです。

たとえば、次のようにステートメントを閉じていませんでした。

$newsArchive->close();

そのため、次の接続が正しく機能しませんでした。

于 2013-10-15T12:05:22.073 に答える