为了账号安全,请及时绑定邮箱和手机立即绑定

在 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 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信