def update_data(self):
db = sqlite3.connect("SQLite database")
cursor = db.cursor()
cursor.execute("""UPDATE Item SET ? = ? WHERE itemid = ? """,(self.field, self.value, self.ID))
db.commit()
cursor.close()
Ошибка указывает на наличие синтаксической ошибки около "?" но я не понимаю, в чем проблема.Почему этот метод класса python не работает? (он использует SQLite3)
Примечание: Это метод класса с полностью определенными атрибутами.
Большое спасибо
Каковы значения self.field, self.value и self.ID? –
Это строки и правильные входные значения. Я проверил значения, просто заменив значения, я бы ввел их с помощью атрибутов, причем значения сами по себе были в пределах выполнения sting, и он сработал. Мне просто нужно работать с атрибутами, а не – Diran
Я думаю, вам придется использовать str.format и проверять ввод, если он поступает из внешнего источника, что-то вроде 'cursor.execute (" "" UPDATE Item SET {} =? WHERE itemid =? "" ".format (self.field, (self.value, self.ID)))' –