Python SQLITE变量传递命令的语法错误?

Python SQLITE变量传递命令的语法错误?,python,sqlite,Python,Sqlite,我在python中使用sqlite3,希望得到我的列“Pcode”的数据,情况是“Pcode”存储在一个变量中,比如“b” 预期结果如下 [('***data from database***',), ('***data from database***',)] 但结果是: [('Pcode',), ('Pcode',)] 我不知道我为什么会得到这种类型的结果?使用python脚本方法在列表中添加变量 c.execute("SELECT "+b+" FROM AddStock") 这是相

我在python中使用sqlite3,希望得到我的列“Pcode”的数据,情况是“Pcode”存储在一个变量中,比如“b”

预期结果如下

[('***data from database***',), ('***data from database***',)]

但结果是:

[('Pcode',), ('Pcode',)]

我不知道我为什么会得到这种类型的结果?

使用python脚本方法在列表中添加变量

c.execute("SELECT "+b+" FROM AddStock")

这是相同的语法。

如果您使用的是sqlite3,此代码将提供正确的行:

conn = sqlite3.connect(db_file)
b= "Pcode"
b = str(b)

cur = conn.cursor()
cur.execute('''SELECT ? FROM AddStock''',(b,))

print(cur.fetchall())

只是想排除明显的问题,您是否尝试过对其进行硬编码,即c.execute('SELECT Pcode FROM AddStock')?谢谢,伙计,但我是通过另一种方式得到结果的,即查询返回表中每一行的参数值。不能将表名或列名作为参数传递。在数据库中,查询不会按原样执行。它根据表统计信息、列类型、索引等编译成执行计划。不同的表、列、统计信息、索引会导致非常不同的执行计划。重复的no bro不工作也会产生相同的意外结果您是否使用SQLITE浏览器检查数据库文件?可能数据不在那里?我得到了结果,您代码的输出如下所示,包含[((result1,),((result2,),)],其中如果我存储在变量中,比如说“a”,并调用[0]result are“(result1,),”,甚至包括这些和逗号。我似乎无法重现您的问题,你能提供db文件和函数的代码吗?我得到了答案,你可以在下面看到答案:-)
conn = sqlite3.connect(db_file)
b= "Pcode"
b = str(b)

cur = conn.cursor()
cur.execute('''SELECT ? FROM AddStock''',(b,))

print(cur.fetchall())