Python Execute() 恰好接受 2 个参数(给定 3 个)
Python Execute() takes exactly 2 arguments (3 given)
我正在尝试使用以下代码将值插入到 SQLite 数据库中:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''', (PlayerLevel,PlayerUsername))
这是执行函数:
def Execute(self,SQL):
self.__connection.execute(SQL)
self.__connection.comit()
我收到这个错误:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ?
''', (PlayerLevel,PlayerUsername)) TypeError: Execute() takes exactly
2 arguments (3 given)
您的 Execute()
方法只有两个参数,self
和 SQL
。 self
参数由 Python 提供给绑定方法,因此只有 SQL
参数有空间:
def Execute(self,SQL):
但是你用一个额外的参数调用了绑定方法,而不仅仅是一个 SQL
参数:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''',
(PlayerLevel,PlayerUsername))
传入的元组值与自动插入的 self
参数和 SQL
参数一起构成 三个 .
如果您想支持 SQL 参数,您需要接受这些参数:
def Execute(self, SQL, params=()):
self.__connection.execute(SQL, params)
self.__connection.commit()
这一行表示您正在输入两个参数:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''', (PlayerLevel,PlayerUsername))
将这 2 个参数添加到随实例自动传递的 implicit self
参数中,您现在有 3 个参数。
要么在调用它时保留 1 个参数,要么修改 Execute
的定义以容纳另外 1 个参数。
我正在尝试使用以下代码将值插入到 SQLite 数据库中:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''', (PlayerLevel,PlayerUsername))
这是执行函数:
def Execute(self,SQL):
self.__connection.execute(SQL)
self.__connection.comit()
我收到这个错误:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''', (PlayerLevel,PlayerUsername)) TypeError: Execute() takes exactly 2 arguments (3 given)
您的 Execute()
方法只有两个参数,self
和 SQL
。 self
参数由 Python 提供给绑定方法,因此只有 SQL
参数有空间:
def Execute(self,SQL):
但是你用一个额外的参数调用了绑定方法,而不仅仅是一个 SQL
参数:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''',
(PlayerLevel,PlayerUsername))
传入的元组值与自动插入的 self
参数和 SQL
参数一起构成 三个 .
如果您想支持 SQL 参数,您需要接受这些参数:
def Execute(self, SQL, params=()):
self.__connection.execute(SQL, params)
self.__connection.commit()
这一行表示您正在输入两个参数:
con.Execute('''UPDATE tblPlayers SET p_Level = ? WHERE p_Username= ? ''', (PlayerLevel,PlayerUsername))
将这 2 个参数添加到随实例自动传递的 implicit self
参数中,您现在有 3 个参数。
要么在调用它时保留 1 个参数,要么修改 Execute
的定义以容纳另外 1 个参数。