python连接数据库mysql 实现表中数据的删除,sql语句报错

去掉for 循环 传入一个值的时候也是同样的报错。因为有很多条数据需要删除 for循环应该怎么写的 用delete from table_name where key in keylist 也是报错

img

‘key_value’改成key_value,否则会被当作字符串而不是变量

def execute(self, query, args=None):
    """Execute a query

    :param str query: Query to execute.

    :param args: parameters used with query. (optional)
    :type args: tuple, list or dict

    :return: Number of affected rows
    :rtype: int

    If args is a list or tuple, %s can be used as a placeholder in the query.
    If args is a dict, %(name)s can be used as a placeholder in the query.
    """

可以看到第二个变量支持的类型有: tuple, list or dict, 兄弟尼传参有问题。

1、‘key_value’改成key_value,再看报错内容
2、key_value 的内容是字符? 如果是字符,sql有问题 ,应该是 key = '%s'

这个问题已经解决
首先“key_value ”确实应该是key_value
但是依旧是存在问题。因为关于数据库中字段名key,它是mysql的保留字,需要用反引号把它引起来‘key’
但是接下来就出现了代码执行不报错 数据库没有反映的问题 后里就把字段名key换成了其他的非保留字 就成功了。

非常