Heim >Datenbank >MySQL-Tutorial >So verwenden Sie vorbereitete Anweisungen mit MySQL in Python: Ein Leitfaden zur Vermeidung von Syntaxfehlern und zur Optimierung der Leistung
Verwenden vorbereiteter Anweisungen mit MySQL in Python
Beim Versuch, SQL mit vorbereiteten Anweisungen in Python über die direkte SQL-Verwendung zu verwenden, können bei Benutzern Fehler auftreten wie zum Beispiel „Sie haben einen Fehler in Ihrer SQL-Syntax“. Dies kann auftreten, wenn Anweisungen wie folgt ausgeführt werden:
sql = "PREPARE stmt FROM ' INSERT INTO {} (date, time, tag, power) VALUES (?, ?, ?, ?)'".format(self.db_scan_table) self.cursor.execute(sql)
gefolgt von:
sql = "EXECUTE stmt USING \'{}\', \'{}\', {}, {};".format(d, t, tag, power) self.cursor.execute(sql)
Um dieses Problem zu lösen, ist es wichtig zu verstehen, dass Python über keinen intrinsischen Mechanismus für vorbereitete Anweisungen verfügt. Stattdessen kann man die Methode „execute()“ des Cursorobjekts nutzen, um Anweisungen dynamisch vorzubereiten und auszuführen.
Zum Beispiel:
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table)) self.cursor.execute(sql, (d, t, tag, power))
Dieser Ansatz verringert die Notwendigkeit einer zusätzlichen Zeichenfolgenformatierung, z Das MySQLdb-Modul übernimmt die Vorbereitung und Ausführung von Anweisungen automatisch.
Darüber hinaus ist zu bedenken, dass, wenn die erwähnte Schleife nur das Einfügen von Daten beinhaltet, ein einziger Aufruf von .execute_many() mit einer Folge von Tupeln als Zweiter erforderlich ist Das Argument könnte die gesamte Schleife ersetzen und so die Effizienz steigern.
Darüber hinaus bietet der Connector/Python von MySQL mit seiner Option „prepare=True“ in .cursor() eine überlegene Alternative. Dies ermöglicht die explizite Vorbereitung von Anweisungen (unter Verwendung des effizienten Binärprotokolls) und ermöglicht gleichzeitig die Verwendung eines anderen Cursors für Anweisungen, die besser unvorbereitet bleiben.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie vorbereitete Anweisungen mit MySQL in Python: Ein Leitfaden zur Vermeidung von Syntaxfehlern und zur Optimierung der Leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!