我在mysql表中插入一行。该行已成功插入表中。 但问题是每当我刷新页面时,数据库中都会添加一个新行。
如何预防?
答案 0 :(得分:7)
发布/重定向/获取(PRG)是Web开发人员的常见设计模式,可帮助避免某些重复的表单提交,并允许用户代理使用书签和刷新按钮更直观地表现。
在PHP中,这看起来像是这样,通常......
<?php
handleForm($_POST);
header('Location: next-page.php');
exit;
显然handleForm()
将替代处理插入等的代码。
答案 1 :(得分:1)
这是浏览器的问题。他们在刷新时重新发布数据。为了防止它发生,每次插入新记录时,您都必须检查代码中的数据重复。这是必须防止重复数据的一般做法。
在预期和允许真正重复数据的另一种情况下,您可以做的是在每次插入header("Location: {$location}");
后将用户重定向到同一注册页面。这将清除浏览器的POST数据。
答案 2 :(得分:0)
在mysql表中使用主键。将任何列设为主键列