使用Python变量搜索SQLite数据库

Mol*_*ers 1 python sqlite

我有一个SQLite数据库,我想使用Python变量进行搜索,如下所示:

cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将允许我将每行作为列表返回到包含用户正在搜索的所有行的更大列表.我意识到上面的内容是伪代码.我怎么能真正写出来?

Xym*_*ech 13

我认为你想使用参数替换功能:

cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))
Run Code Online (Sandbox Code Playgroud)

实际执行命令sqlite3文档页面上的第四个示例代码框中有更多文档.

请注意,您应该明确不使用%or format函数,因为它容易受到注入攻击:

# NEVER DO THIS
cur.execute("SELECT * FROM list WHERE InstitutionName='%s'" % (Variable,))
Run Code Online (Sandbox Code Playgroud)