2

'INSERT IGNORE INTO'、無視を引き起こす列('unique' /'primary'に設定されている列)を取得するにはどうすればよいですか?

使用例、ユーザーをテーブルに挿入しますが、ユーザー名または電子メールがすでに挿入されている場合は挿入されません-すでに挿入されているのが電子メールまたはユーザー名(あるいはその両方)であるかどうかを知りたいので、エラーメッセージを印刷できますjavascriptを介した画面。

なぜなら、事前にSELECTを使用することをお勧めするかもしれません。ただし、これを行うことにより、2つの追加クエリを実行する必要があります。スクリプトを可能な限りクリーン/高速に保つようにしています。

mysql_affected_rows()は、挿入されているかどうかを教えてくれますが、挿入されていることを証明した列は返されません。

mysql_errorか何かを使用できると思いますか?mysql_errorはエラーでのみ表示されるため、わかりません。「IGNORE」を使用しているため、エラーはバッファリングされません。


mysql_errorなどを解析した場合、@ mysql_query('INSERT INTO ...')は機能しますか?

4

1 に答える 1

3

クエリの後、実行SHOW WARNINGSして重複キーに関する情報を確認できます。

MySQL警告を処理するPHPコードの例は、この質問への回答にあります。PHPでMySQL警告を検出して処理できますか?

于 2012-04-19T21:14:42.760 に答える