sqlite3不显示结果

时间:2013-09-24 00:37:56

标签: python database sqlite

我在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这样的查看器检查了数据库,并试图通过终端进行搜索,但效果很好。 ¿任何人都可以看到错误吗?

1 个答案:

答案 0 :(得分:0)

SQL查询中的参数始终替换为固定值。 换句话说,字符串总是被替换为字符串,而不是列名。

要在查询中自定义列名,您不能使用SQL参数,而是在Python中进行替换:

cursor.execute('SELECT %s FROM song WHERE title = ? AND artist = ?' % (query),
               (title, artist))