PHP / MYsql中的重复问题

时间:2011-07-11 05:21:58

标签: php mysql insert refresh

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

如何预防?

3 个答案:

答案 0 :(得分:7)

使用Post/Redirect/Get pattern

  

发布/重定向/获取(PRG)是Web开发人员的常见设计模式,可帮助避免某些重复的表单提交,并允许用户代理使用书签和刷新按钮更直观地表现。

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

<?php

handleForm($_POST);

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

显然handleForm()将替代处理插入等的代码。

答案 1 :(得分:1)

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

在预期和允许真正重复数据的另一种情况下,您可以做的是在每次插入header("Location: {$location}");后将用户重定向到同一注册页面。这将清除浏览器的POST数据。

答案 2 :(得分:0)

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