Musisz przekazać instrukcję SQL i parametry jako osobne argumenty:
cursor.execute(loggit[0], loggit[1])
lub użyj składni zmiennych argumentów (splat, *
)
:
cursor.execute(*loggit)
Twoja wersja próbuje przekazać krotkę zawierającą instrukcję SQL i parametry wiążące jako jedyny argument, gdzie .execute()
funkcja oczekuje, że znajdzie tylko ciąg instrukcji SQL.
Bardziej typowe jest trzymanie tych dwóch oddzielnych i być może przechowywanie tylko instrukcji SQL w zmiennej:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))