在页面加载时插入查询,插入两次?

时间:2011-09-24 09:23:56

标签: php sql insert

在我的游戏页面上,我有一个他们玩游戏的页面。在那个页面上我有一个查询

$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很新,所以如果有人能给出一些不错的反馈而不给我滥用。那将是非常令人沮丧的。

3 个答案:

答案 0 :(得分:2)

前端控制器的逻辑错误。

每次向您的网站发出请求时,都会调用执行此查询的页面。请注意浏览器的其他请求(肯定会是favicon.ico)。

然后更改前端控制器的逻辑,以便它不会运行无效请求的应用程序。否则,当网站上线时,将不会有一个而是数千个错误的插页。

答案 1 :(得分:0)

查询执行的页面上的条件是什么,或者以其他方式如何在页面上执行查询的变量值如果是,那么如果设置了变量则首先检查变量是否存在而不是运行查询。

答案 2 :(得分:0)

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

我发现了这个:

如果我执行一个简单的插入查询,当我在Firebug中打开“net”功能时它会被插入两次,这不会发生。奇怪。只是想把这个添加到这篇文章中。 仍在努力解决这个问题。

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