簡體   English   中英

SQLite3將單個占位符值傳遞給python中的函數-Newbie

[英]SQLite3 passing a single placeholder value into a function in python - newbie

我是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(“從sqlite_master中選擇SELECT sql,其中type = \\'table \\'AND name =(?) ',str(tablename))#表'students'中的列

ProgrammingError:提供的綁定數不正確。 當前語句使用1,並且提供了8。

誰能告訴我我做錯了什么? 謝謝

問題是您需要傳入一個元組而不是單個值。 您想要做的是將行更改為以下內容:

c.execute('SELECT sql FROM sqlite_master WHERE type=\'table\' AND name=(?)',(tablename,))

希望這可以幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM