防止重复插入

时间:2015-05-25 18:23:58

标签: php mysql mysqli insert

我有一个正在插入的页面。数据库表有一个名为" order"的唯一列。添加新行时自动递增。我正在以这种方式执行插入:

$insert = <<<SQL
INSERT INTO `order` (name, email, team, project, startdate, enddate, comment, server) VALUES (?,?,?,?,?,?,?,?);
SQL;
$instat = $mysqli->prepare($insert);
$bind = mysqli_stmt_bind_param($instat, "ssssssss", $name, $email, $team, $project, $timestart, $timeend, $comment, $code);
$exec = mysqli_stmt_execute($instat);
mysqli_stmt_close($instat);
mysqli_close($mysqli);

我允许DB处理订单列的自动增量,以便它不能被复制。这很好用,但如果我在页面上点击刷新,它将在新的唯一订单ID上插入具有相同数据的另一行。如何在页面刷新时阻止另一个插入?

2 个答案:

答案 0 :(得分:1)

保存行后,将页面重定向到另一个页面并显示相应的消息。你的流程就像

  1) $service->saveObject($dataObject);
  2) redirect_to_success page.

答案 1 :(得分:0)

  1. 在每次插入之前 - 进行选择查询并检查
  2. 使用NOT EXIST进行插入查询:
  3. 3.插入后重定向到当前页面。