MySQL脚本输入不正确

时间:2014-12-06 00:09:41

标签: php mysql

我有一个MySQL和PHP脚本,当它不存在时输入一行。

INSERT INTO `tblPlayerAchievements` (HS_ID, AchievementID, AchievementProgress) 
SELECT * FROM (SELECT ".$userData['HS_ID'].", ".$achievementID.", 0) AS tmp 
WHERE NOT EXISTS (SELECT * FROM `tblPlayerAchievements` 
WHERE HS_ID=".$userData['HS_ID']." AND AchievementID=".$achievementID.") 
LIMIT 1

这完全有效,直到$ userData ['HS_ID']和$ achievementID都是相同的值然后它跳过那一个。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于您还没有回答有关行存在时会发生什么的问题,我将假设您希望INSERT失败。在这种情况下,您需要做的就是在UNIQUE上创建(HS_ID, AchievementID)索引。我还建议您在0上设置默认值AchievementProgress,以便您的查询只需指定用于创建行的ID。

相关问题