0

テーブル内のレコードの存在に応じて、レコードを挿入または更新するステートメントを作成しようとしています。「drug_name_pl」フィールドのレコードが存在する場合、「vote_sum」の値が1ずつ増加します。問題は、ステートメントが既存のフィールドを更新しようとしているときに、レコードを毎回作成することです。

テーブルの構造は次のとおりです。

               Field            Type       Null Key Default Extra
                id              int(11)    NO   PRI NULL    auto_increment
                drug_name_pl    varchar(11)NO   MUL NULL      
                vote_sum        int(11)    NO       NULL

そしてクエリ:

$query = "INSERT INTO lek_podstawowe(drug_name_pl) VALUES ('$drug_name_pl') 
ON DUPLICATE KEY UPDATE vote_sum=vote_sum+1"; 
4

1 に答える 1

2

Drug_name_pl に一意のキーを追加する必要があります

何かのようなもの:

CREATE UNIQUE INDEX drug_name_pl_unique ON table_name (drug_name_pl)

table_nameテーブルの実際の名前に変更することを忘れないでください。また、アプリケーション フォームの SQL インジェクションを保護するために、$drug_name_pl を適切にエスケープしてください。

于 2012-12-27T23:42:08.227 に答える