为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 的 SQL 语句中传递列名?

在 Python 的 SQL 语句中传递列名?

凤凰求蛊 2023-03-08 15:13:48
这是我写的代码def edititem():    edit_code = int(input("Enter  the product code of the item you would like to edit:"))    edit_cat =  input("Enter the category of the item you would like to edit:")    edit_val =  int(input("Enter the new value"))    edit = """UPDATE products SET %s = %s where prod_code = %s"""    cur.execute(edit,(edit_cat,edit_val,edit_code,))    connector.commit()这是我得到的错误: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 '' prod_code' = 1 where prod_code = 1231' at line 1我一直无法弄清楚错误到底是什么,这将是一个很大的帮助。提前致谢。
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您不能使用 SQL 参数来插入列名。您必须对这些部分使用经典的字符串格式。

例如,以下是列的使用字符串格式

cursor.execute("SELECT * FROM PacketManager WHERE {} = ?".format(filters[0]), (parameters[0],))

还要注意验证允许的列名称的重要性,以确保不会发生注入。

您还应该从此处查看示例 -在 SQL 查询中使用 Python 列表获取列名


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信