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
我的简单 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