sql >> Database >  >> RDS >> Mysql

Sqlalchemy, onbewerkte query en parameters

Beide mv en ml worden niet herkend, omdat u ze niet als variabelen hebt gedefinieerd.

Het tweede argument van execute statement is een woordenboek, en alle elementen van je gewone query "UPDATE client SET musicVol = :mv , messageVol = :ml" ontsnapt met een dubbele punt worden gezocht in de sleutels van dit woordenboek. De execute methode heeft geen sleutel gevonden 'mv' noch 'ml' in dit woordenboek, wordt daarom een ​​fout gemaakt.

Dit is de juiste versie:

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



  1. MySQL-substringextractie met scheidingsteken

  2. Hoe gegevens met aanhalingstekens op te slaan in MySQL

  3. Hoe de laatste invoeg-ID in Oracle te verkrijgen met MyBatis?

  4. Opdrachten lopen niet synchroon; je kunt deze opdracht nu niet uitvoeren