我无法进行简单明了的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;。
的表格答案 0 :(得分:4)
您不能将SQL参数用于对象名称(例如表或列)。毕竟,参数的重点是阻止值被解释为SQL对象或命令。
在这里使用字符串格式,但输入(如果它来自用户),以防止SQL注入:
p = 'user'
cursor.execute("SELECT Guid FROM {} LIMIT 1".format(p))