在APSW中,为什么这个sql绑定不起作用



为什么会这样呢:

sql="""UPDATE """+stream+"""_pointer SET id = """+str(message.id)+"""; insert into """+stream+""" VALUES ("""+str(message.id)+""",'"""+safemessage+"""','pending')"""
cursor.execute(sql)

但是对于完全相同的变量,这不是:

sql="UPDATE ?_pointer SET id = ?; insert into ? VALUES (?,?,?)"
cursor.execute(sql,(stream,message.id,stream,message.id,safemessage,'pending'))

我得到的第二个有用的错误信息是:

---> 31                 cursor.execute(sql,(streampointer,message.id,stream,message.id,safemessage,'pending'))
SQLError: SQLError: near "?": syntax error

使用增强回溯的不会提供更多线索:

File "/tmp/ipykernel_20009/643992601.py", line 31, in <module>
cursor.execute(sql,(streampointer,message.id,stream,message.id,safemessage,'pending'))
apsw.SQLError: SQLError: near "?": syntax error

我在chromebook上使用jupyter notebook lab

From sqlite doc

SQLite允许任何字符串字面值、数字常量或NULL的参数。(参数不能用于列名或表名)

最新更新