繁体   English   中英

sqlite3用“?”更新数据库-python

[英]sqlite3 update database with “?” - python

我有:

数据库testing.db3表:mytable列:'name','status'

我做:

con = sqlite3.connect('testing.db3')
cur = con.cursor()
cur.execute('select * from mytable where status is null')

data = cur.fetchone()
print(data[0])

根据需要,我收到以下结果:

('Johnny', 'None')

现在,我正在尝试更新此行,如果我这样做,它将起作用:

cur.execute('UPDATE mytable SET status = "Online" WHERE name is "Johnny"')

但是,如果我想用“?”来更新它,那是行不通的。 知道为什么吗?

cur.execute('UPDATE mytable SET status = "Online" WHERE name is ?', data[0])
con.commit()
con.close()

将不胜感激。 谢谢。

cur.execute('UPDATE mytable SET status = "Online" WHERE name is ?', (data[0], ))

execute期望将元组作为输入参数。 因此,即使仅插入一个值,也应将其格式化为元组。

尽管在您的问题中您说data[0] = ('Johnny', 'None') ,但在注释中您指出data[0]是元组的第一个值。 因此,我认为是后者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM