这是您应该使用参数绑定而不是在Python中格式化参数的原因之一。
只是这样做:
sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'
然后:
cur.execute(sql, macs, host)
这样,您可以将字符串作为字符串处理,然后让MySQL库找出如何为您引用和转义它。
最重要的是,您通常可以获得更好的性能(因为MySQL可以编译和缓存一个查询,并将其重用于不同的参数值),并且可以避免SQL注入攻击(最容易被黑客入侵的方法之一)。



