sql >> Base de Datos >  >> RDS >> Mysql

Sqlalchemy, consulta sin formato y parámetros

Ambos mv y ml no serán reconocidos, ya que no los ha definido como variables.

El segundo argumento de execute declaración es un diccionario, y todos los elementos de su consulta simple "UPDATE client SET musicVol = :mv , messageVol = :ml" escapados con dos puntos se buscan en las claves de este diccionario. El execute el método no encontró una clave 'mv' ni 'ml' en este diccionario, por lo tanto, se genera un error.

Esta es la versión correcta:

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