php运行一次并在mysql数据库中插入两次

nic*_*cng 6 php mysql insert

我在下面有一个简单的代码.运行一次后,它会将结果两次插入mysql数据库.

如果它在页面上1次刷新时运行两次或请求两次,为什么输出只有1个结果?

我一直在谷歌上搜索,并努力解决这个问题.但是,我没有弄清楚这段代码有什么问题.代码在localhost上运行完美,但在将其移动到服务器后,问题会弹出.以前有人遇到过这样的事吗?如何解决这个问题?

完整代码:

<?php
$db=mysql_connect('localhost','zzzzzzz','xxxxxx') or die('Unable to connect.'.mysql_error());
mysql_select_db('test',$db) or die(mysql_error($db));

$sql="INSERT INTO test_table(value,insert_time) VALUES ('testing','".time()."')";
$result=mysql_query($sql);
echo "result=".$result;

$select="select * from test_table";
$rs=mysql_query($select);
while($row=mysql_fetch_array($rs)){
echo $row["test_id"]." -- ".$row["value"]." -- ".$row["insert_time"]."<br />";
}
?>
Run Code Online (Sandbox Code Playgroud)

结果:
结果= 1
1 - 测试 - 1298185509

但是在数据库中:
test_id,value,insert_time
1,testing,1298185509
2,testing,1298185511

小智 16

我和你一样面临同样的问题,当我使用Opera或chrome时,这个问题才会出现.

对于我的情况,我有一个.htaccess指向索引文件的每一件事.当然,浏览器会两次请求脚本,一次是脚本,另一个是favicon.

修复: 尝试编辑.htaccess以防止在浏览器请求时重定向到索引文件favicon.ico

  • Endy Jasmi,这是你唯一的答案,你在3年多的时间里没有回到这个网站,但是我一直在把这头虫拉过来,你解决了它.谢谢. (2认同)

Sar*_*fan 1

正如您提到的,当您在本地测试时,问题不会发生,只有当您在服务器中部署时才会出现问题 --- 我猜您的页面中有 Google Adsense。在这种情况下,Adsense 抓取工具正在抓取您的页面(向该网址发送第二个 http 请求)

为了避免这种情况,请在 php 文件的开头添加以下内容:

if(strpos($_SERVER['HTTP_USER_AGENT'],'Mediapartners-Google') !== false) {
        exit();
}
Run Code Online (Sandbox Code Playgroud)

我在发送电子邮件的脚本中遇到了类似的问题。我每次操作都会收到两封电子邮件:(

然后,我调查了服务器访问日志,发现来自该用户代理的每个操作的第二个请求......