Skip to main content
 首页 » 编程设计

Python pysqlite 不接受我的 qmark 参数化

2025年05月04日12java哥

我认为我是个笨蛋,也许没有导入正确的包,但是当我导入时......

 
from pysqlite2 import dbapi2 as sqlite 
import types 
import re 
import sys 
... 
    def create_asgn(self): 
        stmt = "CREATE TABLE ? (login CHAR(8) PRIMARY KEY NOT NULL, grade INTEGER NOT NULL)" 
        stmt2 = "insert into asgn values ('?', ?)" 
        self.cursor.execute(stmt, (sys.argv[2],)) 
        self.cursor.execute(stmt2, [sys.argv[2], sys.argv[3]]) 
... 
 I get the error pysqlite2.dbapi2.OperationalError: near "?": syntax error 

这对我来说意义不大,因为文档显示 pysqlite 是 qmark 参数化的。不过,我是 python 和 db-api 的新手,请帮帮我!谢谢

请您参考如下方法:

那是因为参数只能传递给VALUES。表名不能参数化。

您还在第二个查询的参数化参数周围加上了引号。删除引号,转义由下划线库自动为您处理。