我有一个类似的问题而不是已回答的问题 Python pysqlite not accepting my qmark parameterization
我的问题如下: 我想要一个参数化搜索字符串,就像字符串本身一样。
这是我的陈述:
command = "select id, l from testDT where l like '%, ?]'"
cur.command(command, (123,))
pysqlite返回以下错误:
pysqlite2.dbapi2.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied.
我明白这是因为qmark被解释为文字。但是,我不知道如何指定这样的“喜欢”搜索机智qmarks而不将qmarks解释为文字。
以下搜索成功:
command = "select id, l from testDT where l like '%, {x}]' "
command = command.format(x=123)
cur.execute(command)
但是,据我所知,这正是不使用format()函数的方式。
答案 0 :(得分:1)
您使用整个批次作为参数,例如:
command = "select id, l from testDT where l like ? "
cur.command(command, ('%, 123]',))