所以我有以下声明
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
答案 0 :(得分:0)
您只能将?
占位符用于文字,而不能用于列名等标识符。在编程语言中使用字符串格式来生成带有所需标识符的SQL。
此外,不必将?
括在parens中。
因此,改为:
cursor.execute("UPDATE IllnessTable SET {} = ? WHERE IllnessName = ?".format(self.SymptomName),
(self.IllnessStatus[ControlVar],CurrentIllnessName))