Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insertion de variables MySQL à l'aide de Python, ne fonctionne pas

Vous devez transmettre l'instruction SQL et les paramètres en tant qu'arguments distincts :

cursor.execute(loggit[0], loggit[1])

ou utilisez la syntaxe d'argument variable (un splat, * ) :

cursor.execute(*loggit)

Votre version essaie de passer un tuple contenant l'instruction SQL et les paramètres de liaison comme seul argument, où le .execute() la fonction s'attend à trouver uniquement la chaîne de l'instruction SQL.

Il est plus courant de garder les deux séparés et peut-être de ne stocker que l'instruction SQL dans une variable :

loggit = """
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """
cursor.execute(loggit, (bob, dummyVar))