Ich bekomme diesen Fehler, der scheint, als sollte es leicht zu finden sein, aber egal wie sehr ich den Code anschaue, oder Google es, ich kann es nicht herausfinden.Sie haben einen Fehler in Ihrer SQL-Syntax. in der Nähe von 'SET'-Punkten` = `Punkte` +?'
Hier ist der Code
INSERT INTO `users` (`username`)
VALUES (?)
ON DUPLICATE KEY
UPDATE `users` SET `points` = `points` + ?
Das? später angegebenen Werte vorbereitete Anweisungen verwenden, aber zum Testen ich ersetzte sie durch tatsächliche Werte wie unter
INSERT INTO `users` (`username`)
VALUES (`existingusername`)
ON DUPLICATE KEY
UPDATE `users` SET `points` = `points` + 5
Und ich habe auch versucht, nonextistingusername
als Wert. Und ich versuchte WHERE
für UPDATE
verwenden, aber glauben, ist es nicht notwendig, weil ich bin mit ON DUPLICATE KEY UPDATE
Ich sehe nicht, wohin ich gehe falsch hier
Edit: Ich auch Klammern versucht, um die "points
+ 5"
Edit: weiter Code
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";
}
Und der SQL-Fehler
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
Können Sie den PHP-Code und die Fehlermeldung auf die Frage hinzufügen? – chris85
@ chris85 Ich habe es aktualisiert. danke – cantsay