在SQL语句中格式化单引号

Ste*_*hen 2 python

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

我有一个地名

"Musee d'Orsay"
Run Code Online (Sandbox Code Playgroud)

我想要的是

"Musee d\'Orsay"
Run Code Online (Sandbox Code Playgroud)

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

str.replace("'","\'")
Run Code Online (Sandbox Code Playgroud)

但是,它返回原始字符串.你能帮我一下吗?

双斜线效果很好.

str.replace("'","\\'")
Run Code Online (Sandbox Code Playgroud)


好的,谢谢你的回复.我已经弄清楚了.

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

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

INSERT INTO table_name VALUES(Musee d''Orsay);

这个对我有用.

mad*_*jar 7

你不应该通过准备进入它的字符串来创建SQL查询:你应该使用占位符并让库为你做逃逸工作.

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

m = "Musée d'Orsay"
cursor.execute('SELECT * FROM table WHERE museum=?', m)
Run Code Online (Sandbox Code Playgroud)