Il should be:
cursor.execute ("""
UPDATE tblTableName
SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))
Vous pouvez également faire avec la manipulation de chaînes de base,
cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
mais this way is discouraged because it leaves you open for SQL Injection. Comme il est si facile (et similaire) de le faire le droit chemintm. Faites-le correctement. La seule chose que vous devriez faire attention, c'est que certains backends de base de données ne suivent pas la même convention pour le remplacement de chaîne (on pense à SQLite).
La réponse de Paolo est meilleure. http://stackoverflow.com/questions/1307378/python-mysql-update-statement/1307413#1307413 – voyager
Mais celui-ci fonctionnera avec chaque backend. Cette version ne fait aucune validation sur l'entrée, tandis que Paolo s'assurera d'échapper au contenu des variables. – voyager
Ne * pas * le faire de cette façon. Vous vous laissez largement ouvert aux attaques par injection SQL. Paulo a la bonne réponse, car il s'assure que les valeurs sont correctement échappées avant de les passer à la base de données. –