sql更新集? =?哪里? =? (python,sqlite3)

时间:2016-10-11 14:06:39

标签: python sqlite

Python,slite3

c.execute("UPDATE accounts SET ? = ? WHERE num=?", (db['choise'], db['data'], db['num']))

所以我不知道它有什么问题

db是搁置数据库

2 个答案:

答案 0 :(得分:2)

列(和表)名称​​无法参数化。使用字符串格式化并查询其余变量的参数化:

c.execute("UPDATE accounts SET {column} = ? WHERE num = ?".format(column=db['choise']), (db['data'], db['num']))

那就是说,确保你正确地验证/清理/逃避db['choise']值或者真正信任它的来源(尽管在数据库交互方面并不信任任何人)。

答案 1 :(得分:1)

列名不能作为参数给出。你可以尝试

c.execute("UPDATE accounts SET "+str(db['choise'])+" = ? WHERE num=?", (db['data'], db['num']))