不确定在python中将多个变量传递给sql查询的语法是否正确

9q78igpj  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(254)

这个问题在这里已经有答案了

如何在python的sql语句中使用变量(6个答案)
两年前关门了。
我正在尝试编写一个sql查询来更新当前登录到web应用程序的用户的密码。我正在使用会话id来标识要为其更新密码的特定用户。但是,我不确定如何为查询编写正确的语法
以下是有疑问的问题:

cursor.execute("UPDATE user SET password = %s WHERE email = ?", [confirm_password], session['email'])

以及由此产生的错误:

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

我只想更新使用会话id登录的用户的密码他们的用户名(在本例中是电子邮件地址)。
任何帮助都将不胜感激。谢谢。

x8diyxa7

x8diyxa71#

您需要将它们作为要插入execute语句的值元组提供。
语法如下所示:
cursor.execute(operation, params=None, multi=False) operation 是您的查询字符串 params 是一个元组,其中包含所有参数

cursor.execute("UPDATE user SET password = %s WHERE email = %s", 
               (confirm_password, session['email']) )

你可能也应该用%两次。。
请参见连接器python api mysqlcursor execute
如果有疑问,我可以在这里查找语法:http://bobby-tables.com/python 或者使用原版的doku。

相关问题