SQL - INSERT如果不存在,否则UPDATE

时间:2017-05-10 16:16:17

标签: php mysql

我试图使用Steam API登录我的网站,我希望每次用户登录时都会创建一个数据库条目,但是,每次使用此代码时,我都会一直重复插入:

INSERT INTO tbl_users (steam_id, username, trade, welcome) VALUES ('".$steamprofile['steamid']."','".$steamprofile['personaname']."','0', '1')

然后我尝试了一些代码,如果条目存在,它会更新,但我仍然最终得到了一个新条目。

$sql = "INSERT INTO tbl_users (steam_id, username, trade, welcome) VALUES ('".$steamprofile['steamid']."','".$steamprofile['personaname']."','0', '1')
                ON DUPLICATE KEY UPDATE username=('".$steamprofile['personaname']."')";

我真正需要的是复制的主键,因此当它检查重复时,它会查看steamid而不是user_id(数据库中的主键和AI)

感谢您的帮助:D

1 个答案:

答案 0 :(得分:0)

正如其他任何人想要解决类似问题的解决方案一样,数据库中必须有一个唯一的索引,因此php可以决定插入或更新,在我的情况下,我使用了他们从未改变的steamid。

感谢@Barmar的回答