-1
Я пытаюсь сохранить в таблице некоторые данные и, если она изменится, обновит значение.Невозможно вставить данные в базу данных sqlite с помощью Python
def saveobject(obj):
save=(obj.field1, obj.field2, obj.field3)
con = sqlite3.connect('test.db')
with con:
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS Users(field1 TEXT, field2 INT, field3 INT)")
allrows = cur.fetchall()
print allrows
if(len(allrows)==0):
cur.execute("INSERT INTO Users VALUES(?,?,?)", save)
else:
for row in allrows:
if(obj.field1==row[0]):
if(obj.field2==row[1]):
print 'Object already Present'
break
else:
print 'Object field2 updated'
cur.execute("UPDATE Users set field2=(?) where field1=(?)", (obj.field2, obj.field1))
break
else:
cur.execute("INSERT INTO Users VALUES(?,?,?)", save)
print 'User added'
print 'after ', cur.fetchall()
Запуск программы, проверить, что объект правильно принят метод (я проверил, что печать «сохранить» и все в порядке), у меня есть следующий вывод:
[]
after []
Что я Я делаю неправильно?
'cur.execute (" SELECT * FROM Users ")' это решение? – brid
Да, но я думаю, что лучше, если вы это сделаете: 'select * from Users где field1 = value1 и field2 = value2 ...' В противном случае вы всегда будете извлекать все строки –