Oba mv
i ml
nie zostaną rozpoznane, ponieważ nie zdefiniowałeś ich jako zmiennych.
Drugi argument execute
Instrukcja jest słownikiem i wszystkimi elementami zwykłego zapytania "UPDATE client SET musicVol = :mv , messageVol = :ml"
W kluczach tego słownika wyszukiwane są znaki ucieczki z dwukropkiem. execute
metoda nie znalazła klucza 'mv'
ani 'ml'
w tym słowniku, dlatego zgłaszany jest błąd.
To jest poprawna wersja:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)