为了账号安全,请及时绑定邮箱和手机立即绑定

一段比较正常的insert操作引发的重复插入奇怪情况

一段比较正常的insert操作引发的重复插入奇怪情况

独聆步武 2016-03-26 13:54:48
<!DOCTYPE html><html><head>/*下面就是代码了,这段代码在linux服务器上运行成功,但是有点问题问题1:mysql_系列语句在phpstrom里直接就被划掉了,说太老套。。。于是我只能换成mysqli_系列,这个是版本更替问题么?问题2:这个php文件叫zsgc.php,我把前后端放到一个页面里了。。。于是,就出了一些奇怪的问题我无法理解。            当我往text中添加数据后,第一次点击提交的按钮(submit),这时候select语句所输出的还没有刷新,这时候我F5刷新,出来刚插入的新数据了,此时text中是空白的,然后我再点一次提交按钮,居然又刷出来一条刚插入的数据(我没设置ID唯一性),就是插入了两条同样的数据。          如果我第一次点了提交后,再点一次提交,那么会只刷一次数据,再点也不会再出了          我的理解就是,我第一次点提交后,如果F5刷新,再提交,他会又一次进入else语句中(判定post【id】有值),如果第一次点提交后,再点提交,就不会进入第二次else语句中。         这个情况让我很费解,虽然把页面分离后,不出现这种情况了,但是还是很好奇,不知道有没有大神来教导我一番,先谢过*/<?php$con = mysql_connect("127.0.0.1","root","");if (!$con){  die('连接失败: ' . mysql_error());}mysql_select_db("zsgc", $con);$result = mysql_query("SELECT * FROM user");while($row = mysql_fetch_array($result)){echo $row['u_id'] . " " . $row['u_name'];  echo "<br />";}if($_POST[id]==null)echo "还未输入数据^_^";else{$sql="INSERT INTO user (u_id, u_name)VALUES ('$_POST[id]','$_POST[name]')";if (!mysql_query($sql,$con))  {    die('错误: ' . mysql_error());  }else  {     echo "1 record added";  //unset($_POST['id']);  //unset($_POST['name']);  }}mysql_close($con);?></head><body><form action="zsgc.php" method="post">u_id: <input type="text" name="id" />u_name: <input type="text" name="name" /><input type="submit" value="插入数据" /></form></body></html>
查看完整描述

2 回答

?
独聆步武

TA贡献4条经验 获得超5个赞

(⊙﹏⊙)b并没有人回答我,还是自己找到答案。。

查看完整回答
1 反对 回复 2016-03-31
?
独聆步武

TA贡献4条经验 获得超5个赞

已经明白了,讲给同样问题的同学听,POST在刷新和回退的时候会出现重复提交数据的问题,所以抓取数据要分页面来进行编码,

查看完整回答
1 反对 回复 2016-03-31
  • 2 回答
  • 1 关注
  • 1449 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信