2012-05-10 36 views
0

mysqlデータベース行に固有のキーが設定されているため、フォーム送信時に重複したエントリを挿入しないようにしました。それは正常に動作しますが、重複したエントリがある場合、ページはロードされません。代わりに、ユーザーは次の警告を受け取ります。Duplicate entry ''' for key ''重複しているエントリ '' 'キーを削除する'警告

行の一意のキーを使用しているのに重複するキーがあっても、そのエラーをオフにしてページを読み込む方法を教えてください。私は、エラー報告をオフに設定しようとしましたが、うまくいきませんでした。

mysql_query("INSERT INTO user 
(formemail,UserIP,Timestamp,LP) VALUES('$email','$userip',NOW(),'$lp') ") 
or die(mysql_error()); 
+2

エラー生成クエリ –

+1

通常、レコードが存在するかどうかをクエリの前に確認します。もしそうなったら、続行しないでください。おそらく、空のクエリやその他の条件を実行しようとすると、エラーが発生する可能性があります。最初に確認してから –

+0

クエリを@AlexiosTsiaparasに更新しましたこれを行う必要を避けるために、これがユニークキーを設定する目的だと思いましたか?私は議論していないが、私は初心者だから頼んでいる。 – user1373779

答えて

5

エラーが最初に生成されないように、INSERT ... ON DUPLICATE KEY UPDATE Syntaxを使用するようにSQL挿入を変更する必要があります。

症状を隠そうとしないで、問題を治療してください。

また、私はmysql library is being deprecatedと新しいコードのために使用すべきではないことを指摘しなければならない、あなたは、少なくとも、mysqliまたは、好ましくはPDOを使用する必要があります。あなたが学習に興味があるなら、良いtutorial on PDO hereがあります。

+0

ありがとう! 」) \tまたはダイ(mysql_error());これは、DUPLICATE KEY UPDATE formemail = formemail ON ' \tを働いた' – user1373779

+0

良いことだそれに、しかし、PDOを使用して起動してください。 – vascowhite

関連する問題