Python SQLite:更新语句TypeError:函数只需要2个参数(给定1个)

时间:2018-04-27 09:20:22

标签: python sqlite sql-update

出于某种原因,我一直在

findSenGroup = cur.executemany("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormName='" + nameGroup + "'")

TypeError: function takes exactly 2 arguments (1 given) error

使用此更新声明:

findSenGroup = cur.executemany("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormGroup='" + nameGroup + "'")

下表显示

enter image description here

senNumStr是我要将列更新为的数字。

nameGroup是我想要senNumStr添加的行的名称

`````

1 个答案:

答案 0 :(得分:4)

当您只执行单个语句时,我不确定您是否需要在此使用executemany。你可以简单地使用:

cur.execute("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormName='" + nameGroup + "'")

最好使用参数化查询而不是格式化字符串,以避免SQL注入漏洞:

cur.execute("UPDATE SEN_Table SET SenNumber = ? WHERE FormName = ?", (senNumStr, nameGroup))