Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserindo variáveis ​​MySQL usando Python, não funciona


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))