それは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))
あなたはも基本的な文字列操作、
cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
しかしthis way is discouraged because it leaves you open for SQL Injectionでそれを行うことができます。それはとても簡単です(そして同様の)ので、正しい方法tm。それを正しくしてください。
唯一注意すべき点は、データベースのバックエンドの中には、文字列を置換するための同じ規則に従わないことがあることです(SQLiteが気に入っています)。より多くの場合
cursor.execute ("""
UPDATE tblTableName
SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))
、read the documentation:
パオロの答えが良いです。 http://stackoverflow.com/questions/1307378/python-mysql-update-statement/1307413#1307413 – voyager
しかし、これはすべてのバックエンドで動作します。このバージョンでは入力の検証は行われませんが、Paoloの方法では変数の内容をエスケープします。 – voyager
このようにはしません。あなたは自分自身をSQLインジェクション攻撃に広く開放しています。パウロは正しい答えを持っています。なぜなら、値を適切にエスケープしてからdbに渡すことができるからです。 –