【发布时间】:2021-08-03 19:35:59
【问题描述】:
每当我尝试更新一行时,Psycopg2 都会给我这个错误:
Traceback (most recent call last):
File "p:/Projects/Freelance/Optometry_Inventory/code/tester.py", line 39, in <module>
new_user.updateUser(*(fname, lname, username, role, hashed_pwd, user_id))
File "p:\Projects\Freelance\Optometry_Inventory\code\UserDC.py", line 64, in updateUser
cursor.execute(update_query, args)
psycopg2.errors.SyntaxError: syntax error at or near "lname"
LINE 1: UPDATE users SET fname= ('a'), SET lname= ('b'),
当我运行以下函数时:
def updateUser(self, user_id):
self.user_id = user_id
update_query = """UPDATE users SET fname= %s, SET lname= (%s),
SET username= (%s), SET user_role= (%s), SET h_pwd= (%s), WHERE user_id= (%s)"""
with pool() as cursor:
cursor.execute(update_query, (self.fname, self.lname, self.user_name,
self.user_role, self.user_pwd, self.user_id))
我尝试只更新一个字段,但仍然遇到同样的错误。我还缺少什么吗?错误代码没有给我太多信息。
【问题讨论】:
-
您只需要一个开头的
SET,并且您必须删除WHERE之前的逗号。并且您可以去掉 SQL 语句中的括号。
标签: python postgresql psycopg2