我是编程和编写作业的新手。我试图通过将用户的搜索词与选定列中的任何匹配值进行比较来搜索数据库。如果用户搜索“Smith”并单击我的GUI中的“Smith”单选按钮,则应显示包含“Smith”作为其作者的所有记录。我可以打印数据库中的所有记录,但不能打印与我的搜索相关的记录。Python:使用SQL搜索数据库
db = None
colNum = None
def search_db(self):
global db
global colNum
self.searchTerm = self.searchvalue.get()
dbname = 'books.db'
if os.path.exists(dbname):
db = sqlite3.connect(dbname)
cursor = db.cursor()
sql = 'SELECT * FROM BOOKS'
cursor.execute(sql)
rows = cursor.fetchall()
for record in rows:
sql_search = 'SELECT * FROM BOOKS WHERE' + ' ' + record[colNum] + ' ' + 'LIKE "%' + ' ' + self.searchTerm + '%"'
cursor.execute(sql_search)
searched_rows = cursor.fetchall()
print(searched_rows)
我收到的错误是“sqlite3.OperationalError:没有这样的栏目:”
这不是你的问题,但[你不应该用这种方式在它们的动态数据中构建SQL语句](https://xkcd.com/327/)。 – abarnert