我正在将搜索词插入数据库中,当我运行它进行测试时,发现数据库中插入了重复项。我能够解决这个问题,但是,现在我要插入,并且不再将其作为重复插入,但是我正在尝试使重复的重复项正常工作-并且重复的重复项每次将流行度提高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_*
。