为什么我的MySql查询会运行两次?

时间:2011-01-25 01:11:07

标签: php mysql

我有一个由.htaccess进行URLRewrited的页面,它运行MySQL查询两次,尽管我放置了一次,没有循环没有任何东西。

的.htaccess

RewriteRule ^go/([a-zA-Z0-9-_]+)$ /go.php?id=$1&%{QUERY_STRING}
RewriteRule ^go/([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)$ /$2.php?id=$1%{QUERY_STRING}

go.php

<?php
$update = mysql_query('UPDATE table SET page_views=page_views+1 WHERE id =123');
?>

每次刷新页面时,都会向数据库添加2个页面视图,为什么会这样?

3 个答案:

答案 0 :(得分:2)

是否还会生成调用该函数的RSS源?

之前我遇到过与Wordpress插件开发类似的问题。 Firefox会对RSS进行某种预取,这会导致2个请求。

修改:上述方法无效。你有xdebug吗?使用xdebug_get_function_stack查看要查询的路径。

答案 1 :(得分:2)

这是一个浏览器问题;)尝试使用IE,它不会运行两次。

如果您使用Firefox禁用所有插件。

答案 2 :(得分:0)

问题在于您的HTML提交脚本两次。以下示例为我工作

if($POST){
  $update = mysql_query('UPDATE table SET page_views=page_views+1 WHERE id =123');
 }

或者您可以使用GET进行验证。