在sqlite3中插入变量后如何使用WHERE



我想使用OID更新特定的行。我不知道如何使用UPDATE来获取变量updatednumber,只更新我想要的特定行。

import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
test = 12
def subtract():
query = ("SELECT * FROM test WHERE oid = 2") 
c.execute(query)
record = c.fetchone()
r = record[1]
updatednumber = (test - r)

def subtract1():
c.execute("""UPDATE products SET qty = (:paid),
{

'tpaid': updatednumber

}
WHERE oid = 2""")
subtract()
subtract1()

当我运行这个时,它告诉我{是一个无法识别的令牌。

此语法错误:

c.execute("""UPDATE products SET qty = (:paid),
{

'tpaid': updatednumber

}
WHERE oid = 2""")

因为您已经在查询字符串中嵌入了字典;它应该是CCD_ 1的第二个参数。所以改为这样做:

c.execute("UPDATE products SET qty = :paid WHERE oid = :oid", {'paid': updatednumber, 'oid': 2})

最新更新