SQLite3 Update
У меня есть настройки базы данных с Python и sqlite3. Мне нужно обновить базу данных, чтобы я мог изменить информацию об элементе.
Текущий код у меня есть:
itemname = e0.get()
quantity = e1.get()
manufacturer = e2.get()
itemnumber = e3.get()
price = e4.get()
curriculumlink = e5.get()
yeargrouplink = e6.get()
location = e7.get()
Все они взяты из полей ввода tkinter, в настоящее время они содержат информацию, которую я загрузил в них, основываясь на той информации, которая уже есть в базе данных об элементе.
cursor = db.cursor()
sql = "UPDATE items SET quantity = '%s' WHERE name = '%s';" % quantity.strip(), itemname.strip()
cursor.execute(sql)
db.commit()
Этот код обнаруживает ошибку и не обновляет количество. Если у кого-то есть какие-либо предложения по этому поводу, я был бы очень признателен.
Тем не менее, есть ли способ обновить все свойства выше в одном SQL-выражении. Все поля в базе данных совпадают с именами ввода пользователя выше.
Спасибо за ваше время:)
1 ответ
sql = "UPDATE items SET quantity = '%s' WHERE name = '%s';" % (quantity.strip(), itemname.strip())
исправит вашу проблему (она не интерпретировала кортеж без круглых скобок), но вы действительно должны использовать механизм sqlite3 для выполнения форматирования
cursor.execute("UPDATE items SET quantity=?WHERE name=?",[qty,name])
и действительно, вы, вероятно, должны использовать ORM, такой как sqlalchemy, который позволяет легко переключать движки баз данных и представляет все данные в виде классов
class Item(Base):
__tablename__ = "items"
name = Column(String,primary_key=True)
qty = Column(Integer,default=0)