我正在将搜索词插入数据库中,当我运行它进行测试时,发现数据库中插入了重复项。我能够解决这个问题,但是,现在我要插入,并且不再将其作为重复插入,但是我正在尝试使重复的重复项正常工作-并且重复的重复项每次将流行度提高2吗?我这里有什么问题?

$entryDate = date("c");
$insertsearchquery="insert into article_searches (termSafe,entryDate) values (\"$termSafe\",\"$entryDate\") on duplicate key update popularity=popularity+1";

mysql_query($insertsearchquery);


我为termSafe和entryDate设置了唯一键。

TABLE `article_searches` (
`id`  bigint(20) NOT NULL AUTO INCREMENT ,
`termSafe` varchar(150) ,
`entryDate`  varchar(255),
`popularity` tinyint(6) UNSIGNED NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `termSafe` USING BTREE (`termSafe`),
UNIQUE INDEX `entryDate` USING BTREE (`entryDate`)
)


尽管我刚刚删除了entryDate唯一索引。

最佳答案

我猜这是因为您有一个UNIQUE(termSafe)和UNIQUE(entryDate),也许您只想要一个UNIQUE(termSafe,entryDate)。

请记住,不建议使用mysql_*函数。应改用PDO或mysqli_*

07-26 01:30