我正在尝试使此Python MYSQL更新语句正确(带有变量):
cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % 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))
您 也 可以通过基本的字符串操作来做到这一点,
cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
但 不建议使用此方法,因为它使您可以进行SQL注入 。因为以 正确的方式完成 tm是如此容易(和类似)。正确地做。
您唯一需要注意的是,某些数据库后端没有遵循相同的字符串替换约定(想到了SQLite)。