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为您的表的真实名称。还请确保您正确转义 $drug_name_pl 以保护申请表 sql 注入

于 2012-12-27T23:42:08.227 回答