这是我写的代码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 列表获取列名
添加回答
举报
0/150
提交
取消