И двете mv
и ml
няма да бъдат разпознати, тъй като не сте ги дефинирали като променливи.
Вторият аргумент на execute
изявлението е речник и всички елементи на вашата обикновена заявка "UPDATE client SET musicVol = :mv , messageVol = :ml"
избягали с двоеточие се търсят в ключовете на този речник. execute
методът не намери ключ 'mv'
нито 'ml'
в този речник, следователно се появява грешка.
Това е правилната версия:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)