クエリがキャッシュされていることはほぼ確実です。SELECT文です。
これが状況の例です。現在、保留中の注文が 2 件あります。保留中の注文の通知をホームページに表示して、新しい注文が行われた場合に倉庫に通知するスクリプトがあります。「2」が「3」に更新されるかどうかをテストするために注文しましたが、更新されませんでした。phpMyAdmin からクエリを実行すると「3」が表示されますが、PHP を介して実行すると「2」しか表示されないため、クエリがキャッシュされていると思います。これを修正する方法、または特定のクエリでキャッシュを無効にする方法はありますか?
これが私の元のコードでした
<?php
if( protectThis("1, 2") ) :
$pending = $conn->query("SELECT count(*) FROM orders WHERE `status` =0");
$pending2 = $pending->fetch();
$pendingcount = count($pending2);
if ($pendingcount > 0) {
?>
<div class="orange warning">
<p>
<strong>Pending Order Notification</strong>
<br />There are currently <strong><?php echo $pendingcount; ?></strong> pending orders.
<br /><a style="color:white;margin-top:10px;" class="btn btn-inverse" href="orders_pending.php"><i>Click here to view them.</i></a>
</p>
<div class="shadow-out"></div>
</div>
<?php
}
endif;
特定のクエリのキャッシュを無効にしようとしたことを読んだ後、クエリを変更しようとしましたが、次のことを試しました
SELECT SQL_NO_CACHE count(*) FROM orders WHERE `status` =0
どうやらそれもうまくいきませんでした。
どうすればいいのかわからない。:\
どんな助けでも大歓迎です。
「編集1」
$pending = $conn->query("SELECT count(*) FROM orders WHERE `status` =0");
// $pending2 = $pending->fetch();
// $pendingcount = count($pending2);
$pendingcount = $pending->rowCount();
if ($pendingcount > 0) {