दोनों 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}
)