Der Martin: mysqli query Fehler: update AND select

Beitrag lesen

Hallo Max,

SELECT score, user, id FROM table AS temp, (
UPDATE table SET score = score + 1 WHERE user = ? AND id = ?)
WHERE temp.user = ? AND temp.id = ? 

(prepared Statement, daher die Fragezeichen)

...wirft leider einen Fehler.

dann verrate uns bloß nicht, welchen Fehler. Das könnte ja der Schlüssel zur Lösung sein.

Ich tippe auf einen banalen Syntaxfehler. Nach dem Keyword AS folgt eine kommagetrennte Liste der Aliasnamen für die zuvor im SELECT angesprochenen Spalten. Deine geklammerte Subquery mit dem UPDATE liefert aber keinen alternativen Bezeichner für eine Spalte.

(UPDATE table SET score = score + 1 WHERE user = ? AND id = ?)
AND
(SELECT score FROM table WHERE user = ? AND id = ?)

Was willst du mit dem AND dazwischen? Mit AND machst du eine logische Verknüpfung von zwei boolschen Termen. Setze einfach die beiden Queries separat nacheinander ab.

Einen schönen Tag noch
 Martin

--
Wie man sich bettet, so schallt es heraus.