php + mysql:select max(value)显示旧结果

时间:2014-06-29 18:21:16

标签: php mysql

我的代码是:

echo $sql = "SELECT MAX(version) as version FROM stats";
$result = mysql_query($sql);
$rr=mysql_fetch_array($result);
$v = $rr["version"];

问题是:第一次运行一切都很好。让我们说$v = 10;

但是当其他来源更新字段version时,它不会改变。我可以将它增加到12,我在数据库中看到它是12.通过运行这个PHP脚本,它总是将$v设置为“10”。那是为什么?

1 个答案:

答案 0 :(得分:1)

在此代码中,您始终显示您的查询(您在开头有回声)。

在我看来,只有两个选择:

  1. 您使用某种类型的PHP缓存。如果您这样做,每次刷新页面时可能都不会看到SELECT MAX(version) as version FROM stats

  2. 执行此代码后,您不会立即显示$ v值。例如,$v变量经常在循环中使用,因此您很可能更改代码的其他部分的值,这就是为什么它始终为10。

  3. 那么你应该做什么:

    echo $sql = "SELECT MAX(version) as version FROM stats";
    $result = mysql_query($sql);
    $rr=mysql_fetch_array($result);
    $v = $rr["version"];
    echo $v;
    

    确保每次刷新页面时都能看到消息。如果它没有显示,则表示您使用缓存,否则您应该在此处看到正确的值。

    当然,您也不应该再使用mysql函数,因为不推荐使用mysql extendsion。你应该使用mysqli或PDO。