使用sqlite和python中的变量与WHERE语句一起更新

使用sqlite和python中的变量与WHERE语句一起更新,python,sqlite,Python,Sqlite,我正在使用python和SQLite进行编码。我需要使用update和WHERE语句更新一个表。挑战在于WHERE和UPDATE语句的值都必须是变量。我做了一些研究,发现了这个链接和这个 在运行代码时,我收到以下错误 c.execute("UPDATE StudentlistTable set ClassAttend = ?", (student_attendance), "WHERE StudentID = ?", (i)) TypeError: function takes at most

我正在使用python和SQLite进行编码。我需要使用update和WHERE语句更新一个表。挑战在于WHERE和UPDATE语句的值都必须是变量。我做了一些研究,发现了这个链接和这个

在运行代码时,我收到以下错误

c.execute("UPDATE StudentlistTable set ClassAttend = ?", (student_attendance), "WHERE StudentID = ?", (i))
TypeError: function takes at most 2 arguments (4 given)

任何帮助都将不胜感激

根据您收到的错误消息,
execute()
函数需要两个参数,第一个参数用于查询,第二个参数是包含查询中要使用的参数的单个元组。试试这个:

c.execute("UPDATE StudentlistTable SET ClassAttend = ? WHERE StudentID = ?",
          (student_attendance, i))
下面是一个很好的参考问题,它更详细地讨论了您的问题:


根据您收到的错误消息,
execute()
函数需要两个参数,第一个参数用于查询,第二个参数是包含要在查询中使用的参数的单个元组。试试这个:

c.execute("UPDATE StudentlistTable SET ClassAttend = ? WHERE StudentID = ?",
          (student_attendance, i))
下面是一个很好的参考问题,它更详细地讨论了您的问题:


此答案消除了错误,即整个代码运行时不返回任何错误,但update语句不会按预期更改表。您可以提供更多信息吗。意外情况是什么?为了便于使用,请单击“编辑(一段时间前)”链接,以完成所有编辑。此答案消除了错误,即整个代码运行时不会返回任何错误,但update语句不会按预期更改表。您可以提供更多信息吗。意外情况是什么?为了便于使用,请单击“编辑(一段时间前)”链接,以完成所有编辑。是否可以显示正在运行的实际更新查询?恕我直言,您的数据可能存在问题,导致查询没有达到预期效果。i是空元组,而不是实际值。将每个i转换为适当的字符串变量可以按需要工作。@这是一个问答网站,不是论坛;不要以可能使现有答案无效的方式更改问题。你的问题已经得到了回答;如果您有新问题,请提出新问题。能否显示正在运行的实际更新查询?恕我直言,您的数据可能存在问题,导致查询没有达到预期效果。i是空元组,而不是实际值。将每个i转换为适当的字符串变量可以按需要工作。@这是一个问答网站,不是论坛;不要以可能使现有答案无效的方式更改问题。你的问题已经得到了回答;如果你有一个新问题,问一个新问题。