我想使用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})