有我的代码:
$sql = "INSERT INTO item SET
player = '$player',
amount = '$amount',
item = '$item',
allowed = '$allowed' ON DUPLICATE KEY UPDATE
amount = amount + $amount";
当我执行这个查询时,在数据库中创建新行,尽管它已经存在......
感谢帮助。
语法不正确,这个更正的版本:
$sql = "INSERT INTO item SET
player = '$player',
amount = '$amount',
item = '$item',
allowed = '$allowed'
ON DUPLICATE KEY UPDATE
amount = `amount` + '$amount' ";
其他因素取决于您的表结构和键
我会这样做:
$sql = "INSERT INTO DBNAME.item (player, amount, item, allowed)
values('$player', '$amount', '$item', '$allowed')
ON DUPLICATE KEY UPDATE
amount = amount + values(amount);";
在评论中,您说桌子上没有钥匙。那是个问题。你在问数据库ON DUPLICATE KEY UPDATE
,但没有 a UNIQUE KEY
,它不知道 aDUPLICATE KEY
是什么。
您需要在不想被重复的字段上添加一个UNIQUE KEY
(或一个)。PRIMARY KEY