Nó 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))
Bạn có thể cũng làm điều đó với thao tác chuỗi cơ bản,
cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
nhưng this way is discouraged because it leaves you open for SQL Injection. Vì quá dễ dàng (và tương tự) để làm điều đó theo cách đúng đắn tm. Làm điều đó một cách chính xác.
Điều duy nhất bạn nên cẩn thận, là một số chương trình phụ trợ cơ sở dữ liệu không tuân theo quy ước tương tự để thay thế chuỗi (SQLite xuất hiện trong đầu).
Câu trả lời của Paolo tốt hơn. http://stackoverflow.com/questions/1307378/python-mysql-update-statement/1307413#1307413 – voyager
Nhưng điều này sẽ làm việc với mọi phụ trợ. Phiên bản này không thực hiện bất kỳ xác nhận nào về đầu vào, trong khi cách của Paolo sẽ đảm bảo thoát khỏi nội dung của biến. – voyager
Không * làm theo cách này. Bạn để lại cho mình mở rộng để tấn công SQL injection. Paulo có câu trả lời đúng, bởi vì nó đảm bảo rằng các giá trị được thoát đúng cách trước khi chuyển chúng vào db. –