Mysql如果重复UNIQUE KEY更新命中

时间:2015-01-21 05:38:45

标签: php mysql insert duplicates

我对inset关键字的简单php脚本。如果关键字已经退出,我需要更新点击计数器..我该怎么办?如果关键字是"样本"如果已经存在于db中我需要更新"命中" = 2,如果再次使用相同的关键字"点击" = 3

CREATE TABLE IF NOT EXISTS `search` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `keyword` varchar(255) NOT NULL,
      `hits` varchar(255) NOT NULL,
      `date` datetime DEFAULT NULL,
      PRIMARY KEY (`ID`),
      UNIQUE KEY `keyword` (`keyword`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;

我的php:

$raw_results = mysql_query("INSERT INTO search (keyword, date) VALUES    ('$keyword', '$date' )");

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用ON DUPLICATE KEY

INSERT INTO table (columns) 
    VALUES (values)
ON DUPLICATE KEY UPDATE hits = hits + 1

因为您在关键字上有一个唯一键,它会将命中数增加1

侧面注意:

不要使用PHP的mysql_ * deprecated API,它存在很多安全问题。您应该使用参数化查询 mysqli_* PDO