我是mysql的新手,想咨询有关在我的迷你游戏中使用mysql的信息。我的想法是,从游戏中我得到两个变量 - 一个是电子邮件,另一个是得分。
我正在考虑创建一个包含两列并将电子邮件设置为主列的表。
问题是如何让PHP脚本替换第二次尝试的玩家的得分值?
例如user@user.com在第一次尝试中得分为100,脚本将其添加为INSERT INTO表VALUES($ email,$ score);然后用户尝试另一次,相同的脚本尝试添加但得到重复的错误。任何有关脚本逻辑的帮助都会很棒!欢呼声
答案 0 :(得分:6)
INSERT
INTO mytable (email, score)
VALUES ($email, $score)
ON DUPLICATE KEY
UPDATE
SET score = $score
这需要email
为PRIMARY KEY
的{{1}}。
答案 1 :(得分:1)
没有更多细节,很难回答。如果存在某种类型的会话或预注册播放器,则可以插入“默认分数”为零,然后始终更新而不是插入。如果没有,Queassnoi的解决方案可能是最好的。
答案 2 :(得分:1)
您需要使用UPDATE而不是INSERT
UPDATE table SET score = $newScore where email=$email
您正尝试使用相同的主键添加新记录,因此出现错误消息