为什么我会收到错误' sqlite3.OperationalError:near"?":语法错误'?

时间:2015-09-23 18:03:44

标签: python sqlite

我无法进行简单明了的sqlite3查询。以下代码

p = ('user',)
cursor.execute("SELECT Guid FROM ? LIMIT 1",p)

给出错误

Traceback (most recent call last):
  File "try_Units.py", line 21, in <module>
    cursor.execute("SELECT Guid FROM ? LIMIT 1",p)
sqlite3.OperationalError: near "?": syntax error

但我正在使用示例here中解释的确切语法。那么语法(python 3.4.0)有什么问题?

我想访问属性&#39; Guid&#39;来自名为&#39; user&#39;。

的表格

1 个答案:

答案 0 :(得分:4)

您不能将SQL参数用于对象名称(例如表或列)。毕竟,参数的重点是阻止值被解释为SQL对象或命令。

在这里使用字符串格式,但输入(如果它来自用户),以防止SQL注入:

p = 'user'
cursor.execute("SELECT Guid FROM {} LIMIT 1".format(p))