2015-01-21 31 views
1

我的简单的PHP脚本inset关键字。如果关键字已经退出,我需要更新点击计数器..我该怎么做?如果关键词是“样品”,如果已经有在DB我需要更新“命中” = 2,如果再相同关键字的“点击” = 3Mysql如果重复唯一键更新点击

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')"); 
+0

@Darren运做插入查询,而不是一个更新,想知道如何不插入额外的行以一个关键字,而不是仅仅增加命中 – 2015-01-21 05:57:43

回答

1

你试过使用ON DUPLICATE KEY

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

,因为你有一种独特的钥匙上的关键字会由1

边注增加命中:

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

+0

谢谢你的工作很好... – Higginslpert 2015-01-21 05:57:22

+0

@Higginslpert很高兴我可以帮助:)在DUPLICATE KEY是一个非常有用的工具,只要确保你使用它的其他东西,你知道它是如何工作:) +1的问题 – 2015-01-21 05:59:26