Php SQL-如果不存在,则插入,否则更新

Php SQL-如果不存在,则插入,否则更新,php,mysql,Php,Mysql,我正在尝试使用Steam API登录我的站点,我想在用户每次登录时创建一个数据库条目。但是,在使用此代码时,我每次都会收到重复的插入: INSERT INTO tbl_users (steam_id, username, trade, welcome) VALUES ('".$steamprofile['steamid']."','".$steamprofile['personaname']."','0', '1') 然后我尝试了一些代码,如果条目存在,它会更新,但尽管如此,我还是得到了一个新

我正在尝试使用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']."')";
我真正需要的是副本的主键,所以当它检查副本时,它会查看streamid而不是用户id(数据库中的主键和AI)


感谢您的帮助:D

其他任何人想要解决类似问题,您的数据库中必须有一个唯一的索引,以便php可以决定插入或更新,在我的例子中,我使用了他们的steamid,它从未更改过


感谢@Barmar的回答

使
steam\u id
成为表中唯一的索引。@Barmar感谢,它起了作用:D