可能是查询,还是通过PHP通过html表单在数据库中插入值的解决方案,但是每次刷新页面时,先前插入的值都会再次插入?
if (isset($_POST["insert1"])) {
$inrtno = $_POST["inrouteno"];
$instp = $_POST["instop"];
if ($inrtno !=''||$instp !='') {
$query = mysqli_query($datacon,"REPLACE INTO `stops`(`sn`, `routeno`, `stop`) VALUES ('NULL','$inrtno','$instp')");
echo "<script type='text/javascript'>alert('Insertion Successful !!!')</script>";
} else {
echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>";
}
}
答案 0 :(得分:3)
每次刷新页面时,您都在重新提交POST变量,因此PHP仍然可以运行。此外,您的查询有SQL injection的危险。考虑使用PDO。
答案 1 :(得分:1)
如前所述(据我个人所知),每次刷新页面时,都会再次发送请求。请记住我,忘记了,谢谢@ADyson。
因此,解决方案是在插入后将用户重定向到相同的表单。
假设此文件为test.php,例如:
if (isset($_POST["insert1"])) {
$inrtno = $_POST["inrouteno"];
$instp = $_POST["instop"];
if ($inrtno !=''||$instp !='') {
$query = mysqli_query($datacon,"REPLACE INTO `stops`(`sn`, `routeno`, `stop`) VALUES ('NULL','$inrtno','$instp')");
echo "<script type='text/javascript'>alert('Insertion Successful !!!')</script>";
sleep('3');
header('Location: /test.php');
exit();
} else {
echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>";
}
}
答案 2 :(得分:0)
当您重新加载页面时,浏览器会要求您重新提交请求,因此该值将再次被传输。因此,当您插入数据时要检查记录是否已经存在。