Les deux mv
et ml
ne seront pas reconnus, car vous ne les avez pas définis comme variables.
Le deuxième argument de execute
instruction est un dictionnaire, et tous les éléments de votre requête simple "UPDATE client SET musicVol = :mv , messageVol = :ml"
échappés avec deux-points sont recherchés dans les clés de ce dictionnaire. Le execute
la méthode n'a pas trouvé de clé 'mv'
ni 'ml'
dans ce dictionnaire, une erreur est donc levée.
C'est la bonne version :
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)