Heim  >  Artikel  >  Datenbank  >  Wie korrigiere ich Fehler in Python-MySQL-Update-Anweisungen?

Wie korrigiere ich Fehler in Python-MySQL-Update-Anweisungen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 14:32:02754Durchsuche

How to Correct Errors in Python MySQL Update Statements?

Fehler in Python-MySQL-Update-Anweisungen korrigieren

Beim Aktualisieren von Daten in einer MySQL-Datenbank mit Python ist es wichtig, die korrekte Syntax für sicherzustellen UPDATE-Anweisung. Betrachten Sie die folgende Anweisung mit Variablen:

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

Diese Anweisung enthält mehrere Fehler, die zu falschen Aktualisierungen führen können. 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))

In dieser überarbeiteten Anweisung:

  • Die Platzhalterwerte (%s) werden als Teil eines Tupels in die SQL-Abfrage eingebunden. Dieser Ansatz verhindert SQL-Injection-Schwachstellen.
  • Die SQL-Syntax folgt der korrekten Konvention zum Aktualisieren mehrerer Spalten in einer Anweisung.

Alternativ können Sie eine einfache Zeichenfolgenmanipulation für den Aktualisierungsbefehl verwenden als folgt:

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

Von dieser Methode wird jedoch abgeraten, da sie den Code anfällig für SQL-Injection macht Angriffe.

Um potenzielle Probleme mit String-Ersetzungskonventionen über verschiedene Datenbank-Backends hinweg zu beseitigen, ist es ratsam, den ersten Ansatz zu verwenden.

Das obige ist der detaillierte Inhalt vonWie korrigiere ich Fehler in Python-MySQL-Update-Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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