[英]In SQLite, how do I search my database with text from an entry box, and display the result as text?
我的搜索页面上有一个输入框。 我希望此函数在我的数据库中的表(电影)中搜索输入到该输入框中的任何文本(列名是“标题”),然后显示结果。
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”占位符是否适用。 有任何想法吗?
你应该这样做(不安全)
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.