繁体   English   中英

sqlite3没有显示结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM