Why do I get the error 'sqlite3.OperationalError: near “?”: syntax error'?
本问题已经有最佳答案,请猛点这里访问。
我很难进行一个非常简单的
1 2 | p = ('user',) cursor.execute("SELECT Guid FROM ? LIMIT 1",p) |
给出错误
1 2 3 4 | 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 |
但我使用的是此处示例中说明的确切语法。 那么,这种语法(python 3.4.0)有什么问题呢?
我想从名为" user"的表访问属性" Guid"。
您不能将SQL参数用于对象名称(例如表或列)。 毕竟,参数的全部目的是防止将值解释为SQL对象或命令。
在这里使用字符串格式,但是如果您的输入来自用户,请检查输入内容,以防止SQL注入:
1 2 | p = 'user' cursor.execute("SELECT Guid FROM {} LIMIT 1".format(p)) |