当我尝试在executemany()命令中使用元组中的stringvalue作为列名时,如下所示:
tup = ('field', 'value',)
cursor.executemany('UPDATE table SET ?=?', tup)
我得到一个SQlite.operationalerror错误地址:
c.executemany('''UPDATE table SET ?=?''', tup)
sqlite3.OperationalError: near "?": syntax error
什么时候元组值不能在“=”之前插入而只能在后面插入??你知道吗
因为SQL参数表示一个文本值,所以需要使用引号来防止它被解释为SQL表、列名或文本。你知道吗
换句话说,您的
field
值将被引用:而不是
您必须自己清理
field
的值,以确保它只包含字段名,然后自己插入:清理是一个困难的问题;您也许应该使用SQLAlchemy这样的框架来以一种理智的方式为您生成SQL。你知道吗
相关问题 更多 >
编程相关推荐