gpt4 book ai didi

python-3.x - 在sqlite3和python Tkinter中插入电子邮件字符串时出错

转载 作者:行者123 更新时间:2023-12-03 08:05:49 24 4
gpt4 key购买 nike

我正在编写一个简单程序,根据在简单GUI上输入的数据来更新基本db。我使用的是字符串格式,但尝试输入电子邮件地址时仍然出错,我知道应该用双引号将其包围。我敢肯定解决方案很简单-我只是不知道它是什么!

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} =?“”“。format(update_field,update_txt),rec_no)
sqlite3.OperationalError:“@ gmail”附近:语法错误

最佳答案

需要提供给.format()的内容与需要传递给c.execute()的内容相混淆。

分两个步骤进行操作,以便于理解。

您需要告诉我们rec_field应该是什么。它可能类似于idaddress_book_id或?

rec_field = 'id' # you know what this should be...
qry = """UPDATE address_book
SET {0} = ?
WHERE {1} = ?;""".format(update_field, rec_field)
c.execute(qry, (update_txt,rec_no))

关于python-3.x - 在sqlite3和python Tkinter中插入电子邮件字符串时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61366706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com