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