[英]sqlite3 doesn't show results
我在sqlite3的文件中搜索时遇到问题,我有一个数据库,其中的列如下:标题,艺术家,歌词,跟踪
我的代码是:
def search(title,artist,query):
if title and artist and query:
db = sqlite3.connect('songs.db')
cursor = db.cursor()
cursor.execute('SELECT ? FROM song WHERE title=? and artist=?',(query,title,artist))
result = cursor.fetchall()
if result:
print result
else:
return False
我已经将text_factory设置为str,但是它解决了我遇到的另一个问题,我已经用sqliteman这样的查看器检查了数据库,并尝试在终端中搜索,并且效果很好。 ¿任何人都可以看到出什么问题了吗?
SQL查询中的参数始终替换为固定值。 换句话说,字符串总是替换为字符串,而不是列名。
要自定义查询中的列名,必须不要使用SQL参数,而应在Python中进行替换:
cursor.execute('SELECT %s FROM song WHERE title = ? AND artist = ?' % (query),
(title, artist))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.