Verwenden von PDO Prepared Statement und Inkrementieren eines Spaltenwerts
Lesezeit: 1 Minute
phpmeh
Ich habe diesen Thread gelesen: Probleme beim Erhöhen eines Felds in MySQL/PHP mit vorbereiteten Anweisungen, aber ich habe keine Antwort auf mein Problem gesehen.
Soweit ich das beurteilen kann, ist das alles richtig.
Wenn der obige Code ausgeführt wird, setzt er die Notif-Spalte auf 2, unabhängig vom Wert der Notif-Spalte. Es ist, als ob das SQL lesen würde SET notif = 2 anstatt SET notif = notif + 2
Ich komme nicht weiter und würde mich sehr über Hilfe freuen!
Sie können einen Spaltennamen nicht an eine vorbereitete Anweisung binden.
Die Verwendung von Parametern ist nicht nur eine einfache Textersetzung. Sie können einen Spaltennamen nicht durch einen Parameter ersetzen. MySQL interpretiert Ihre Abfrage so, als ob Sie Folgendes geschrieben hätten:
UPDATE user_alerts SET notif="notif" + 2 WHERE ( user_id = ? )
Die Saite 'notif' wird für die Addition zu Null umgewandelt.
Versuchen Sie stattdessen diese Abfrage:
UPDATE user_alerts SET notif = notif + 2 WHERE ( user_id = ? )
10053500cookie-checkVerwenden von PDO Prepared Statement und Inkrementieren eines Spaltenwertsyes