我正在使用连接/游标将数据从旧数据库/模式迁移到使用 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)