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的索引,如果这有帮助的话…您可以在游戏、玩家和团队字段中创建复合主键。