Keduanya mv
dan ml
tidak akan dikenali, karena Anda belum mendefinisikannya sebagai variabel.
Argumen kedua dari execute
pernyataan adalah kamus, dan semua elemen dari kueri sederhana Anda "UPDATE client SET musicVol = :mv , messageVol = :ml"
lolos dengan titik dua sedang dicari di kunci kamus ini. execute
metode tidak menemukan kunci 'mv'
atau 'ml'
dalam kamus ini, oleh karena itu muncul kesalahan.
Ini adalah versi yang benar:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)