Python/MySQL:转义在原始数据库查询中用作参数的字符串



我正在使用连接/游标将数据从旧数据库/模式迁移到使用 Django 模型构建的新数据库/模式中。我遇到带有撇号的名称问题

为了简化

business = "Tom's Diner"
cursor.execute("select * from businesses where name = '" + business + "'") 

这显然会失败,因为我强制使用单引号会导致 SQL 语法问题。如果我这样做会起作用:

business = "Tom''s Diner"

但由于这是一个处理迁移数百万行的自动化过程。我正在寻找一种在将字符串应用于直接 MySQL 查询之前转义字符串的方法。

我的问题是:这是我必须手动做的事情,还是 Django/Python 中是否有一些转义字符串的函数,并且可以处理我什至还没有想到的情况,例如字符串中的双引号等。

试试这个:

cursor.execute("select * from businesses where name = %s ", (business ,))

确保第二个参数是元组:(business,) not (business)