我几乎可以肯定我的查询正在被缓存。这是一个 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) {