Mysql 如果重复 UNIQUE KEY 更新命中

Mysql if duplicate UNIQUE KEY update Hits

我的简单 php 插入关键字脚本。如果关键字已经退出,我需要更新点击计数器。我该怎么做?如果关键字是 "sample" 如果数据库中已经存在我需要更新 "hits" = 2 ,如果再次使用相同的关键字 "hits" =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' )");

您尝试过使用 ON DUPLICATE KEY 吗?

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

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

旁注:

不要使用PHP的mysql_* deprecated API it has a lot of security issues. You should instead use parameterized queries with mysqli_* or PDO