Sie müssen die SQL-Anweisung und die Parameter als separate Argumente übergeben:
cursor.execute(loggit[0], loggit[1])
oder verwenden Sie die variable Argumentsyntax (ein Splat, *
)
:
cursor.execute(*loggit)
Ihre Version versucht, ein Tupel zu übergeben, das die SQL-Anweisung und Bindeparameter als einziges Argument enthält, wobei .execute()
Die Funktion erwartet, nur die Zeichenfolge der SQL-Anweisung zu finden.
Üblicher ist es, die beiden getrennt zu halten und vielleicht nur die SQL-Anweisung in einer Variablen zu speichern:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))