Debe pasar la instrucción SQL y los parámetros como argumentos separados:
cursor.execute(loggit[0], loggit[1])
o use la sintaxis de argumento variable (un símbolo, *
)
:
cursor.execute(*loggit)
Su versión intenta pasar una tupla que contiene la instrucción SQL y los parámetros de enlace como único argumento, donde .execute()
La función espera encontrar solo la cadena de la instrucción SQL.
Es más habitual mantener los dos separados y tal vez almacenar solo la instrucción SQL en una variable:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))