亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 SQLite 中,如何使用輸入框中的文本搜索數據庫,并將結果顯示為文本?

在 SQLite 中,如何使用輸入框中的文本搜索數據庫,并將結果顯示為文本?

吃雞游戲 2023-06-27 18:00:58
我的搜索頁面上有一個輸入框。我希望此函數在我的數據庫中的表(電影)中搜索輸入到該條目框中的任何文本(列名稱為“標題”),然后顯示結果。def search_now():    conn = sqlite3.connect('movie_catalog.db')    c = conn.cursor()    searched = search_box.get()    sql = "SELECT * FROM movies WHERE title = %s"    name = (searched, )    result = c.execute(sql, name)    if not result:        result = "Movie not found"    # Commit our changes    conn.commit()    # Close database connection    conn.close()我不斷收到以下錯誤消息:sqlite3.OperationalError: near "%": syntax error我一直在使用的教程是使用 MYSql,所以我不確定“%s”占位符是否適用。有任何想法嗎?
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

你應該這樣做(不安全)


searched = search_box.get()

sql = "SELECT * FROM movies WHERE title = '%s'" % searched

result = c.execute(sql)

或這個(相當安全地防止注射)


searched = search_box.get()

t = (searched,)

sql = "SELECT * FROM movies WHERE title=?"

result = c.execute(sql, t)

編輯:


在您的示例中,您將文字字符串傳遞SELECT * FROM movies WHERE title = '%s'"給數據庫,這就是它抱怨的原因%s


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號