Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine Python-MYSQL-UPDATE-Anweisung mit Variablen fehl?

Warum schlägt meine Python-MYSQL-UPDATE-Anweisung mit Variablen fehl?

Susan Sarandon
Freigeben: 2024-11-08 17:01:02
Original
964 Leute haben es durchsucht

Why Is My Python MYSQL UPDATE Statement with Variables Failing?

Fehlerbehebung bei der Python-MYSQL-UPDATE-Anweisung mit Variablen

Beim Erstellen einer MYSQL-UPDATE-Anweisung mit Variablen in Python ist es wichtig, deren Richtigkeit sicherzustellen. Ein häufiger Fehler ist wie folgt:

cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)   
Nach dem Login kopieren

Wo haben Sie einen Fehler gemacht?

Das Problem liegt in der Art und Weise, wie Variablen in die Anweisung eingefügt werden. Anstatt die richtige Methode zu verwenden, verkettet dieses Snippet einfach Zeichenfolgen mit Variablen, was von MYSQL nicht unterstützt wird.

Der richtige Ansatz

Um den Fehler zu beheben, benötigen Sie um parametrisierte Abfragen zu verwenden, bei denen Variablen durch Platzhalter dargestellt und als separates Argument übergeben werden. Hier ist der richtige Ansatz:

cursor.execute ("""
   UPDATE tblTableName
   SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
   WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))
Nach dem Login kopieren

Alternative Methode

Alternativ können Sie eine einfache Zeichenfolgenmanipulation verwenden, von der jedoch aufgrund von SQL-Injection-Schwachstellen abgeraten wird:

cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
Nach dem Login kopieren

Zusätzlich Hinweis

Beachten Sie, dass verschiedene Datenbank-Backends möglicherweise unterschiedliche Konventionen für das Ersetzen von Zeichenfolgen haben. SQLite verwendet beispielsweise einfache Anführungszeichen für Zeichenfolgenwerte in Aktualisierungsabfragen.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine Python-MYSQL-UPDATE-Anweisung mit Variablen fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage