Php 您的SQL语法有错误;近';设置“点”=“点”+';

Php 您的SQL语法有错误;近';设置“点”=“点”+';,php,mysql,mysqli,Php,Mysql,Mysqli,我得到了这个错误,看起来应该很容易找到,但是不管我怎么看代码,或者用谷歌搜索它,我都无法找到它 这是密码 INSERT INTO `users` (`username`) VALUES (?) ON DUPLICATE KEY UPDATE `users` SET `points` = `points` + ? 那个?稍后使用准备好的语句给出值,但是为了测试,我用实际值替换了它们,如下所示 INSERT INTO `users` (`userna

我得到了这个错误,看起来应该很容易找到,但是不管我怎么看代码,或者用谷歌搜索它,我都无法找到它

这是密码

INSERT INTO `users` (`username`)
    VALUES (?)
        ON DUPLICATE KEY
            UPDATE `users` SET `points` = `points` + ?
那个?稍后使用准备好的语句给出值,但是为了测试,我用实际值替换了它们,如下所示

INSERT INTO `users` (`username`)
    VALUES (`existingusername`)
        ON DUPLICATE KEY
            UPDATE `users` SET `points` = `points` + 5
我还尝试将
nonextistingusername
作为一个值。我尝试使用
WHERE
进行
更新
,但我认为这是不必要的,因为我在重复密钥更新中使用了

我看不出哪里出了问题

编辑:我还尝试了“
+5”周围的括号

编辑:进一步代码

foreach ($users as $user)
{
    $points_query = mysqli_prepare($db, 'INSERT INTO `users` (`username`)
        VALUES (?)
            ON DUPLICATE KEY
                UPDATE `users` SET (`points` = `points` + ?)');

    mysqli_stmt_bind_param($points_query, 'si', $user, $user_points);
    mysqli_stmt_execute($points_query);

    echo mysqli_error($db) . "\n";
}
还有SQL错误

You have an error in your SQL syntax;
check the manual that corresponds to your MySQL
server version for the right syntax to
use near 'SET (`points` = `points` + ?)' at line 4

正确的语法不会再次使用表名或关键字
SET

ON DUPLICATE KEY
   UPDATE `points` = `points` + ?

您能将PHP代码和错误消息添加到问题中吗?@chris85我已经更新了。谢谢你。有一种感觉,它可能与在重复键上使用
有关,并且一定忽略了查询中的更改