Я пишу простую программу для обновления баз c дБ на основе данных, введенных на простой GUI. Я использую форматирование строк, но получаю сообщение об ошибке при попытке ввести адрес электронной почты, который, как я знаю, должен быть заключен в двойные кавычки. Я уверен, что решение простое - я просто не знаю, что это такое!
def update_rec():
# Connect to the db
conn = sqlite3.connect("address_book.db")
# create a cursor
c = conn.cursor()
fields = ["f_name", "s_name", "mob", "email"]
# Check which textboxes have data
update_txt = ""
update_field = ""
rec_no = str(id_no.get())
if len(f_name.get()) > 0:
update_txt = f_name.get()
update_field = fields[0]
elif len(s_name.get()) > 0:
update_txt = s_name.get()
update_field = fields[1]
elif len(mob.get()) > 0:
update_txt = mob.get()
update_field = fields[2]
elif len(email.get()) > 0:
update_txt = email.get()
update_field = fields[3]
else:
update_txt = ""
update_field = ""
c.execute("""UPDATE address_book SET {0} = ? WHERE {1} = ?""".format(update_field, update_txt), rec_no)
conn.commit()
conn.close()
Я получаю эту ошибку:
c .execute ("" "ОБНОВЛЕНИЕ адресная книга SET {0} =? WHERE {1} =? "" ". формат (update_field, update_txt), rec_no) sqlite3.OperationalError: около" @gmail ": синтаксическая ошибка