Mysql
 sql >> Database >  >> RDS >> Mysql

Sqlalchemy, query grezza e parametri

Entrambi mv e ml non verranno riconosciuti, poiché non li hai definiti come variabili.

Il secondo argomento di execute istruzione è un dizionario e tutti gli elementi della tua semplice query "UPDATE client SET musicVol = :mv , messageVol = :ml" escape con due punti vengono cercati nelle chiavi di questo dizionario. Il execute il metodo non ha trovato una chiave 'mv''ml' in questo dizionario, quindi, viene generato un errore.

Questa è la versione corretta:

db.my_session.execute(
    "UPDATE client SET musicVol = :mv, messageVol = :ml",
    {'mv': music_volume, 'ml': message_volume}
)