sqlite Flask中的SQL更新语句

qnyhuwrf  于 2023-05-07  发布在  SQLite
关注(0)|答案(3)|浏览(212)

这段代码不起作用,我无法找出原因:

db = get_db()
done = "1"
db.execute(
   'UPDATE post'
   'SET payment = (?)'
   'WHERE unique_id = (?)',
   (done, unique_id)
)
db.commit()

它给我这个错误:
File“/mnt/c/Users/Uvo/Desktop/JobApp/main_page.py”,line 163,in stripe_webhook(done,unique_id)sqlite3.OperationalError:近“付款”:语法错误
我尝试了很多不同的方法,但都没有成功。

dphi5xsq

dphi5xsq1#

使用SQLAlchemy应该可以:

db = get_db()
done = "1"
db.execute(
   'UPDATE post '
   'SET payment =:payment '
   'WHERE unique_id =:unique_id',
   payment=done, unique_id=12345)
)
db.commit()

请注意,付款列将包含条目“1”。如果这应该是ID,请相应更改12345:

db = get_db()
db.execute(
   'UPDATE post '
   'SET payment =:payment '
   'WHERE unique_id =:unique_id',
   payment='done', unique_id=1)
)
db.commit()
uqjltbpv

uqjltbpv2#

最后我自己找到了一个简单的解决办法:在同一行上编写SQL查询。

db = get_db()
db.execute('UPDATE post SET payment = "1" WHERE unique_id = (?)',
(unique_id,)
)
db.commit()
6qqygrtg

6qqygrtg3#

这应符合预期:

payment = 'done'
  unique_id = 1
  db = get_db()
  db.execute("UPDATE posts SET payment = %s WHERE unique_id = %s;", \
             (payment, unique_id,))  
  db.commit()

相关问题