繁体   English   中英

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

[英]How do I use WHERE after inserting variables in sqlite3

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

因为您已将字典嵌入到查询字符串中; 它应该是execute()的第二个参数。 所以改为这样做:

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

暂无
暂无

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

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