2011-07-11 20 views
3

私はmysqlテーブルに行を挿入しています。行がテーブルに正常に挿入されています。 しかし、問題は、ページを更新するたびにデータベースに新しい行が追加されることです。PHP/MYSQLの重複問題

どうすればいいですか?

+2

Showでいくつかのコードを使用しますか? – Tim

+0

は、ユーザーに最新表示をブロックするだけです。データを追加した後に新しいページに転送します。 – Raptor

答えて

1

これはブラウザの問題です。リフレッシュ時にデータを再ポストします。それが起こらないようにするには、新しいレコードが挿入されるたびにコード内のデータの重複をチェックする必要があります。これは、データの複製を防止する必要がある一般的な方法です。

純粋な重複データが予想され、許可されている別のケースでは、挿入するたびに同じ登録ページにユーザーをリダイレクトすることができます。header("Location: {$location}");ブラウザのPOSTデータがクリアされます。

7

Post/Redirect/Get patternを使用してください。

ポスト/リダイレクト/取得(PRG)は、特定の重複したフォームの送信を回避し、ユーザエージェントはブックマークや更新ボタンで、より直感的に振る舞うことを可能にするWeb開発者のための共通のデザインパターンです。 PHPで

、これがそうのように見える、一般的に...明らかに

<?php 

handleForm($_POST); 

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

handleForm()はあなたのコードの代わりにするのインサートを扱うことなど

0

mysqlテーブルの主キーを使用します。任意の列を主キー列として作成する