我在下面有一个简单的代码.运行一次后,它会将结果两次插入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
正如您提到的,当您在本地测试时,问题不会发生,只有当您在服务器中部署时才会出现问题 --- 我猜您的页面中有 Google Adsense。在这种情况下,Adsense 抓取工具正在抓取您的页面(向该网址发送第二个 http 请求)
为了避免这种情况,请在 php 文件的开头添加以下内容:
if(strpos($_SERVER['HTTP_USER_AGENT'],'Mediapartners-Google') !== false) {
exit();
}
Run Code Online (Sandbox Code Playgroud)
我在发送电子邮件的脚本中遇到了类似的问题。我每次操作都会收到两封电子邮件:(
然后,我调查了服务器访问日志,发现来自该用户代理的每个操作的第二个请求......
| 归档时间: |
|
| 查看次数: |
21230 次 |
| 最近记录: |