Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MYsql中的双重性问题_Php_Mysql_Insert_Refresh - Fatal编程技术网

PHP/MYsql中的双重性问题

PHP/MYsql中的双重性问题,php,mysql,insert,refresh,Php,Mysql,Insert,Refresh,我正在mysql表中插入一行。正在将该行成功插入表中。 但问题是每当我刷新页面时,数据库中就会添加一个新行 如何预防?使用 Post/Redirect/Get(PRG)是web开发人员常用的设计模式,可帮助避免某些重复的表单提交,并允许用户代理更直观地使用书签和刷新按钮 在PHP中,通常看起来是这样的 <?php handleForm($_POST); header('Location: next-page.php'); exit; 这是浏览器的问题。他们在刷新时重新发布数据。为了防

我正在mysql表中插入一行。正在将该行成功插入表中。 但问题是每当我刷新页面时,数据库中就会添加一个新行

如何预防?

使用

Post/Redirect/Get(PRG)是web开发人员常用的设计模式,可帮助避免某些重复的表单提交,并允许用户代理更直观地使用书签和刷新按钮

在PHP中,通常看起来是这样的

<?php

handleForm($_POST);

header('Location: next-page.php');
exit;

这是浏览器的问题。他们在刷新时重新发布数据。为了防止这种情况发生,您必须在每次插入新记录时检查代码中是否存在重复数据。这是必须防止数据重复的一般做法


在另一种情况下,如果需要并允许真实的重复数据,您可以通过
头(“Location:{$Location}”)在每次插入后将用户重定向到同一注册页面。这将清除浏览器的POST数据。

使用mysql表中的主键。将任何列设为主键列

只要阻止用户刷新即可。添加数据后转发到新页面。