Bei der Entwicklung von Python-Code ist es häufig erforderlich, mit SQL-Datenbanken mithilfe vorbereiteter Anweisungen zu interagieren. Dies ermöglicht einen schnellen Zugriff und Schutz vor SQL-Injection-Angriffen.
In Ihrem Code tritt ein Syntaxfehler auf, wenn Sie versuchen, die Anweisungen „PREPARE“ und „EXECUTE“ direkt zu verwenden. Dies liegt daran, dass Python über keinen eigenen Mechanismus für vorbereitete Anweisungen verfügt und Sie stattdessen die Funktionen der MySQLdb-Bibliothek nutzen sollten.
Der korrigierte Code sollte so aussehen:
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table)) for (d, t, tag, power) in <your loop>: self.cursor.execute(sql, (d, t, tag, power))
Alternativ: Sie können die Methodeexecute_many() des Cursorobjekts verwenden, um mehrere Zeilen gleichzeitig einzufügen:
data = [(d, t, tag, power) for <your loop>] self.cursor.executemany(sql, data)
Dies wird die Leistung erheblich verbessern, insbesondere bei großen Datensätzen.
Das obige ist der detaillierte Inhalt vonWie kann ich vorbereitete Anweisungen mit MySQL in Python effizient ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!