每当我尝试下面的代码时,我都会near "?": syntax error
我尝试了多种方法,包括将其添加到变量
这在python中可行吗?或者我在想错误的方向?
import sqlite3
sqlite_file = 'DATABASE.db'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
word = ()
question = int(input("What would you like to see?"))
if question == 1:
word = ("Batchnumbers")
if question == 2:
word = ("Worker IDs")
c.execute('SELECT * FROM ?', (word))
data = c.fetchall()
for x in range(len(data)):
print(data[x])
答案 0 :(得分:2)
查询参数只能用于提供列值,而不能用于提供表格或列名称。如果需要提供表名,则必须使用动态SQL,例如
c.execute('SELECT * FROM "{}"'.format(word))
请注意,此方法容易受到SQL注入问题的影响,因此您应该考虑减轻这些问题,例如,确保word
不包含会导致错误(或更糟)的双引号字符。
答案 1 :(得分:1)
确实使用这行代码 word =
c.execute('SELECT * FROM "{}"'.format(word))