我是SQLite的新手,我需要帮助。我试图在python中创建一个简单的函数,它接受一个数据库名称和表名,并使它显示整个表。我是这样写的:
def columnlist(dbname,tablename):
dbname=str(dbname)
tablename=str(tablename)
conn = sqlite3.connect(dbname) #connection
c = conn.cursor()
c.execute('SELECT sql FROM sqlite_master WHERE type=\'table\' AND name=?',tablename) #list columns in table 'students'
pp.pprint(c.fetchall())
conn.close()
不知何故,当我尝试运行它时,它给了我以下错误:
文件“C:/ Users / XXXX / Documents / Python Scripts / Assignment 3 / L6Q1.py”,第20行,列表 c.execute(表'学生'中'SELECT sql FROM sqlite_master WHERE type = \'table \'AND name =(?)',str(tablename))#list列
ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了8个。
任何人都可以告诉我我做错了什么吗?感谢
答案 0 :(得分:2)
问题是你需要传入元组而不是单个值。您想要做的是将该行更改为以下内容:
c.execute('SELECT sql FROM sqlite_master WHERE type=\'table\' AND name=(?)',(tablename,))
希望这会有所帮助:)