用Python变量搜索SQLite数据库

2024-05-06 15:18:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")

理想情况下,这将允许我将每一行作为一个列表返回到一个更大的列表中,该列表包含用户正在搜索的所有行。我知道我上面的是伪代码。我怎么能写出来呢?


Tags: 代码用户from数据库列表executesqlite情况
3条回答

我认为您需要使用参数替换功能:

cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))

actual execute commandsqlite3 docs page上的第4个示例代码框中有更多文档。

请注意,您应该显式不要使用%format函数,因为这容易受到注入攻击:

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

如果要显示数据库中的多个记录,则可以在sql查询中使用(LIKE)关键字:

("SELECT * FROM TABLENAME WHERE name LIKE'%?%'",(Variable,))

如果你想用

cur.execute("SELECT * FROM list WHERE InstitutionName like '%'||?||'%'", (Variable,))

相关问题 更多 >