pysqlite不接受qmark参数化

时间:2014-03-07 11:47:52

标签: python pysqlite parameterization

我有一个类似的问题而不是已回答的问题 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()函数的方式。

1 个答案:

答案 0 :(得分:1)

您使用整个批次作为参数,例如:

command = "select id, l from testDT where l like ? "
cur.command(command, ('%, 123]',))