Php MySQL-不同的UPDATE else INSERT语句

Php MySQL-不同的UPDATE else INSERT语句,php,mysql,Php,Mysql,我正忙于执行更新/插入请求,但关键是: table PLAYERS { player_id game_id team_id position number } 应该发生的情况如下: 我测试是否有一个条目 player_id='$player_id'和game_id='$game_id'和team_id='$team_id' 如果存在,则会发生以下情况: position='$position'和number='$number' 我是否可以只使用MySQL

我正忙于执行更新/插入请求,但关键是:

table PLAYERS {
    player_id
    game_id
    team_id
    position
    number
}
应该发生的情况如下:

我测试是否有一个条目
player_id='$player_id'和game_id='$game_id'和team_id='$team_id'

如果存在,则会发生以下情况:

position='$position'和number='$number'

我是否可以只使用MySQL查询语言,而不需要在查询之间进行PHP验证

INSERT INTO TABLE (COLUMNS) VALUES(FIELDS) UPDATE ON DUPLICATE KEY position = somevalue, number=number
1) 尝试插入

2) 如果有具有唯一字段(主键、唯一索引等)的记录,则改为更新该字段。

好吧,我用多个If语句修复了这一问题,以确定是插入还是更新。

除非在事务中使用它,或者,您可以保证不会同时运行针对DB的请求

这是我的查询:
插入到玩家(游戏id、玩家id、位置、编号)值(“$game id”、“玩家[$i]”、“$position[$i]”、“$position[$i]”、“$number”)重复键位置的更新=“$position[$i]”,number='$number'
但是我得到了以下错误:
您的SQL语法中有一个错误;查看与您的MySQL服务器版本对应的手册,了解在第1行的“重复密钥位置更新='LH Prop',number='1''附近使用的正确语法。有什么想法吗?我一直都是这样插入的,而且很有效。我想应该是“重复密钥更新”是的,谢谢,我把它改成那样,然后进行处理,但我认为我的问题是,我没有任何主键,除了游戏id、玩家id和团队id上的索引。因此它处理请求,但不断插入新条目,但事实上,新条目与表中的其他条目完全重复。其他人对我有什么指导吗?
ALTER TABLE PLAYERS添加主键(player\u id、game\u id、team\u id)我没有这个表的主键,但是有关于游戏id、玩家id和团队id的索引,如果这有帮助的话…您可以在游戏、玩家和团队字段中创建复合主键。