プロが教える店舗&オフィスのセキュリティ対策術

たびたびの質問で恐縮です。現在、入力フォームで商品を登録した際に
同名の商品がDBに登録されて(りんごと入力したあと、りんごと入力するとまたリンゴが登録される)しまうので、これを防ぐスクリプトで悩んでいます。商品を登録するときに、商品名をすでに登録されている商品名と照合して、その商品名が存在しているならばエラー文、同じ商品名がなければそのまま登録というような流れでいきたいのです。
商品名(文字列)を照合する、というような。適当なSQL文はありますでしょうか?

A 回答 (3件)

select * from テーブル where 商品名 = @商品名


などでは駄目なのですか?

結果が得られたらエラーってことで。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2006/07/26 09:41

商品名などというあいまいなもので排他性を


回避することは危険です。
大文字・小文字・全角・半角・スペース有り無しなど
名前の入力なんて非常にいい加減です。

前回の回答にも書きましたがプライマリキーを設定し
商品IDを作成し、その排他性をもって2重登録を
ふせぐのが肝要です。
    • good
    • 0
この回答へのお礼

そのほうがよさそうですね。一応解決することができました。

お礼日時:2006/07/26 09:42

重複登録したくないフィールド(今回の場合は商品名?)をプライマリキーやユニークインデックスにして、


INSERT後エラーが発生したかどうかでOKではないですかね?
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせていただきます。

お礼日時:2006/07/26 09:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!