Você precisa passar a instrução SQL e os parâmetros como argumentos separados:
cursor.execute(loggit[0], loggit[1])
ou use a sintaxe de argumento variável (um splat,
*
)
:cursor.execute(*loggit)
Sua versão tenta passar uma tupla contendo a instrução SQL e os parâmetros de ligação como o único argumento, onde o
.execute()
A função espera encontrar apenas a string da instrução SQL. É mais comum manter os dois separados e talvez armazenar apenas a instrução SQL em uma variável:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))