Python-MySQL-Update-Anweisung mit Variablen korrigieren
Beim Versuch, MySQL-Datensätze mithilfe einer Python-Update-Anweisung zu aktualisieren, können bei Benutzern Fehler auftreten. Um dieses Problem zu beheben, ist es wichtig, die Syntax zu überprüfen und ihre ordnungsgemäße Anwendung sicherzustellen.
Falsche Aussage:
cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)
Analyse:
Die falsche Anweisung schlägt aufgrund einer falschen Zeichenfolgenverkettung und eines fehlenden Platzhalters für die Variable „Minute“ fehl. Die korrekte Schreibweise dieser Aussage lautet:
Richtige Aussage:
cursor.execute (""" UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server=%s """, (Year, Month, Day, Hour, Minute, ServerID))
Alternative Syntax:
Alternativ: String-Manipulation kann verwendet werden:
cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
Achtung:
Die alternative Syntax funktioniert zwar möglicherweise, es wird jedoch dringend davon abgeraten, da Ihre Anwendung dadurch anfällig für SQL-Injection-Angriffe wird . Der empfohlene Ansatz ist die Verwendung von Platzhaltern, wie in der richtigen Anweisung dargestellt.
Datenbankkompatibilität:
Darüber hinaus können einige Datenbank-Backends unterschiedliche Konventionen zum Ersetzen von Zeichenfolgen haben. Beispielsweise verwendet SQLite „?“ anstelle von „%s“ für Platzhalter.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Python-MySQL-Update-Anweisung fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!