python - 如何使用 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 查询中使用变量?
提前致谢
解决方案
您使用的是字符串文字'selection'
而不是变量的值selection
。
这是正确的方法:
cursor.execute("SELECT * FROM depot_racks WHERE product LIKE '%' || ? || '%'", (selection,))
这样通配符%
将与字符串的值连接selection
。
推荐阅读
- swift - Vapor Migration 还原失败并出现 MySQL 错误
- python - ValueError:检查目标时出错:预期dense_3的形状为(1,)但得到的数组形状为(2,)
- python - 返回字典列表中元素模糊匹配的键
- java - 用特定单词替换字符串的四个字母单词
- android - setState 在值更改后重新加载旧值
- c - 可以硬编码地址并手动将其分配给指针吗?
- firebase - Flutter Firebase 手机验证在发布到 Play 商店后不起作用
- node.js - Heroku 上部署的应用程序在启动时崩溃
- java - 如何将包添加到 Eclipse 覆盖“分析范围”部分?
- vue.js - TypeError: (0 , _testUtils.createLocalVue) 不是函数