与变量类似的Sql语句

时间:2011-05-25 11:17:42

标签: python sqlite

我正在python

中执行此代码
from sqlite3 import dbapi2 as sqlite

con = sqlite.connect("db.sqlite")
cur = con.cursor()
surname = "'%atton%'"
cur.execute("select id from singers where surname like :surname", locals())
cur.close()
con.close()

在此代码cur.rowcount == -1之后,但Patton在数据库中。

我的SQL语句不好吗?

谢谢

1 个答案:

答案 0 :(得分:5)

您使用的DB-API参数化(您使用它,不要更改它)意味着姓氏将自动被引用或转义。您应该从surname字符串中删除内部引号。

surname = "%atton%"
cur.execute("select id from singers where surname like :surname",
    dict(surname=surname))