首页 > 解决方案 > 如何使用 Python 中的变量搜索 SQLite3 DB

问题描述

我目前正在用 Python 编写一个程序,我需要搜索 SQLite3 数据库,我希望能够使用变量搜索数据库,我将从 Tkinter 组合框选择(GUI)中获取变量的数据

下面是我的表格代码...

db = sqlite3.connect('db.sqlite3')
cursor = db.cursor()
cursor.execute('''
            CREATE TABLE IF NOT EXISTS depot_racks(
                id INTEGER PRIMARY KEY,
                rack TEXT,
                rackloc TEXT,
                floorzone TEXT,
                product TEXT,
                serial TEXT,
                status TEXT,
                entdate TEXT,
                servdate TEXT,
                parts TEXT,
                pat TEXT)''')

下面是我尝试使用获取用户选择的变量来搜索数据库的代码...

def search_all_racks():
    selection = rackTextBox.get()
    cursor.execute("SELECT * FROM depot_racks WHERE product LIKE '%selection%'")
    for row in cursor.fetchall():
        dataArea.insert('end', row)

这什么都不返回,有没有办法selection在 SQLite 查询中使用变量?

提前致谢

标签: pythonpython-3.xsqlite

解决方案


您使用的是字符串文字'selection'而不是变量的值selection
这是正确的方法:

cursor.execute("SELECT * FROM depot_racks WHERE product LIKE '%' || ? || '%'", (selection,))

这样通配符%将与字符串的值连接selection


推荐阅读