2011-09-24 81 views
0

在我的游戏页面上,我有一个他们玩游戏的页面。在该页面中我有一个查询在页面加载时插入查询,插入两次?

$insert_user_activity = mysql_query("INSERT INTO game_activity (user_id,user_full_name,game_id,game_name) values ('$user_id','$full_name','$browser_id','$game_title')");

这将登录到我的数据库,它只是坐在自己的,当我刷新页面,这是因为某些原因提交到数据库的两倍。

我是相当新的PHP,所以如果任何人都可以提供一些好的反馈而不给我滥用。这将是一个很大的折衷。

+0

每刷新一次或第一次加载一次,一次刷新? –

+0

可以说我输入了游戏的网址。查看数据库,它在那里两次。每次刷新两次。 – frankmeacey

+0

也许你只是以某种你不知道的方式调用它两次。没有看到所有的代码,很难说。 –

回答

2

您的前端控制器的逻辑错误。

执行此查询的页面会在对您的站点发出的每个请求中调用。所以请注意您的浏览器的额外请求(肯定会是favicon.ico)。

然后更改前端控制器的逻辑,使其不会为无效请求运行应用程序。否则,当网站上线时,不会有一个,但会有数千个虚假插入。

0

查询执行页面上的条件是什么或者以其他方式如何获取页面上执行查询的变量的值如果是这样的话首先检查变量是否存在设置比运行查询。

0

我在Firefox中执行了两次查询时遇到了问题,但在其他浏览器(Chrome和IE)中没有发生问题。我正在寻找答案,并找到了这篇文章。

我发现这一点:

如果我执行它被插入一个简单的插入查询两次,当我在Firebug的“网”功能切换,这不会发生。奇怪。只是想添加到这个职位。 仍试图解决这个问题。

{edit}更新: 我找到了一个解决方案,虽然它不是一个漂亮的解决方案。如果不存在这样的记录,我首先检查选择计数,如果不存在,则将插入,否则将不会。对我来说有诡计了。