一尘不染

Python MYSQL更新声明

mysql

我正在尝试使此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)

有什么想法我要去哪里吗?


阅读 333

收藏
2020-05-17

共1个答案

一尘不染

应该是

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)。

2020-05-17