网站不显示数据库中的最新信息

时间:2016-06-23 17:20:29

标签: php mysql database

我有一个网站从MySQL数据库(使用PHP)获取数据,并为每一行动态创建div以显示数据。显示数据的网页部分每隔几秒刷新一次(通过删除所有div,再次转到数据库并重新创建它们)。在第一次加载页面时,从数据库检索的数据是正确的,但是,如果之后对数据进行了更改,则在显示部分重新加载时,此更改不会反映在页面上。如果手动刷新整个页面,则检索的数据是正确的。

我已将问题的根源缩小到处理数据库连接和数据选择的php代码,并尝试清除浏览器缓存。有问题的代码如下:

<?php
function disableCache(){
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
  }

function reloadQueue(){
    $dsn = 'mysql:host=db4free.net;dbname=myDB';
    $user = 'username';
    $password = 'password';

    $conn = new PDO($dsn, $user, $password);

    $sql = 'SELECT SQL_NO_CACHE msgId, msg, msgTime, status FROM MsgTable';
    foreach($conn->query($sql) as $row){
      $msgId = $row["msgId"];
      $msg = $row["msg"];
      $time = $row["msgTime"];
      $status = $row["status"];
      echo 'addToQueue("' . $msgId . '","' . $msg . '","' . $time . '","' . $status . '"); ';
    }

    $conn = null; //close connection

  }
?>

这是调用php函数的脚本:

<script>
    function onLoad(){
      <?php disableCache() ?>
      <?php reloadQueue() ?>

      //reload every 15 seconds
      setInterval(function(){
        $("#queue").empty();
        <?php reloadQueue() ?>
      }, 15000);
  }
</script>

0 个答案:

没有答案