无法让我的参数在 SELECT WHERE 子句中工作 python

Can not get my parameter to work inside SELECT WHERE clause in python

所以我创建了一个函数,该函数将一个字符串作为参数,然后使用 select where 子句来获取该参数的值,但由于某种原因它不起作用。我试过 (ar), "ar", '%s'%ar None 对我有用,请帮忙

def getLoc(ar):
    cursor = conn.execute("SELECT location.name from area,location WHERE area.name = ***(ar)*** ")


get_locations_for_area("Columbia")
conn.close()

使用代码格式使您的问题更易于阅读! 我认为它的工作方式是:

def getLoc(ar):
    cursor = conn.execute("SELECT location.name FROM area,location WHERE area.name = ?", (ar,))

这样做的目的是让问号对应conn.execute()的第二个参数。基本上它是将变量作为查询的参数。

这就是您应该如何使用此语句

光标 = conn.execute("SELECT location.name from area,location WHERE area.name = %s" %ar)

这样做:

def getLoc(ar):
    cursor = conn.execute("SELECT location.name from area,location WHERE area.name = ?", ar)

查看文档 https://docs.python.org/2/library/sqlite3.html,它告诉您为什么要使用“?”