簡體   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