Python SQLite : Update Statement TypeError: function takes exactly 2 arguments (1 given)

标签 python sqlite sql-update

出于某种原因,我不断收到

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

TypeError:函数恰好需要 2 个参数(给定 1 个)错误

此更新声明:

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

如下表

enter image description here

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

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

`````

最佳答案

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

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

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

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

关于Python SQLite : Update Statement TypeError: function takes exactly 2 arguments (1 given),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50059200/

相关文章:

mysql - 使用多个值更新和 CONCAT

python - 将列表字典写入 CSV 文件

python - 如何使用漂亮的汤从 html 文档中获取 <text> 标签

java - 为什么以及在哪里调用 setLocale

mysql - 更新替换 SQL 中的分号出现语法错误

php - 使用 php 和 mysql 选择、更新记录

python - 元组索引超出范围? python 3.4.2

python - 如何在pandas中用另一列减去另一列排除标志

Android json插入到sqlite中的数据过多

python - SQLite:仅返回每个组中的前 2 个结果