我是編程和編寫作業的新手。我試圖通過將用戶的搜索詞與選定列中的任何匹配值進行比較來搜索數據庫。如果用戶搜索「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