使用多个变量在python SQLite3中更新语句

时间:2014-04-16 13:37:40

标签: python sql sqlite

所以我有以下声明

cursor.execute("UPDATE IllnessTable SET (?) = (?) WHERE IllnessName = (?)",      
(self.SymptomName,self.IllnessStatus[ControlVar],CurrentIllnessName))

其中self.SymptomName是String,self.IllnessStatus [ControlVar]是一个整数,CurrentIllnessName是一个字符串。变量存在并直接对应于我的表。我想知道这个SQL语句本身有什么问题,因为我得到了:

sqlite3.OperationalError: near "(": syntax error

1 个答案:

答案 0 :(得分:0)

您只能将?占位符用于文字,而不能用于列名等标识符。在编程语言中使用字符串格式来生成带有所需标识符的SQL。

此外,不必将?括在parens中。

因此,改为:

cursor.execute("UPDATE IllnessTable SET {} = ? WHERE IllnessName = ?".format(self.SymptomName),      
(self.IllnessStatus[ControlVar],CurrentIllnessName))