-6

データベースに重複したエントリが挿入されたときにエラーが表示されないようにしたい。

この「@」を追加しましたが、エラーは常に表示されます。

$result = @mysql_query($query) or die("Query failed insert. Mysql error: ".mysql_error() );

出力:

Query failed insert. Mysql error: Duplicate entry for key 'url'

重複したエントリが挿入されたときにエラーを表示しないようにするにはどうすればよいですか?

4

2 に答える 2

12

この「@」を追加することは、開発者がこれまでにできる最も愚かなことです。エラーメッセージエラー自体を混同しています。メッセージではなく、エラーを修正する必要があります。

これを修正するIGNOREには、クエリでキーワードを使用する必要があります

INSERT IGNORE INTO ...

皮肉なことに、実際にはdie()ステートメントを削除する必要がありますが、それをより信頼性が高く安全な方法に置き換えるだけなtrigger_error()ので、コードは次のようになります。

$result = mysql_query($query) or trigger_error(mysql_error()." in ".$query);
于 2012-04-24T12:47:38.127 に答える
5

まあ、他の回答と同様に、die後で句を削除することもできますが、それはあなたが抱えている問題に対する間違った解決策です! .

エラーをカーペットの下に一掃して最善を尽くすのではなく、複数のエントリを作成する原因となっている問題を修正する必要があります。

エラーを無視しないで、修正してください!

于 2012-04-24T12:49:48.237 に答える