3

我的问题很简单,在 Python 中,如何格式化包含单引号的 SQL 语句?

我有地名

"Musee d'Orsay"

我想要的是

"Musee d\'Orsay"

所以,我尝试使用以下语句替换单引号

str.replace("'","\'")

但是,它返回原始字符串。你能给我任何帮助吗?

双斜线效果很好。

str.replace("'","\\'")


好的,谢谢大家的回复。我已经想通了。

我必须通过加倍单引号来逃避它。

str.replace("'","''")

插入表名值(奥赛博物馆);

这个对我有用。

4

1 回答 1

9

您不应该通过准备将进入其中的字符串来创建 sql 查询:您应该使用占位符并让库为您完成转义工作。

确切的语法可能会根据您使用的数据库而改变。例如,在sqlite中:

m = "Musée d'Orsay"
cursor.execute('SELECT * FROM table WHERE museum=?', m)
于 2012-10-16T08:55:08.543 回答