逃避单引号

时间:2010-09-04 12:37:12

标签: mysql

我有一张这样的桌子......

select * from myescape;
+-----------+
| name      |
+-----------+
| shantanu' |
| kumar's   |
+-----------+
2 rows in set (0.00 sec)

我需要用''

替换单引号'

我还需要转义双引号和反斜杠。

4 个答案:

答案 0 :(得分:19)

准备好的陈述的要点是您不必在其中包含内容。对PREPARE占位符使用?查询,然后使用EXECUTE ... USING将值传入,而不必转义它们。

不要试图逃避自己,因为你可能会犯错误。根据您正在使用的编码,除了反斜杠转义引号,反斜杠和null之外,还有更多功能。

答案 1 :(得分:9)

试试这个;

UPDATE myescape SET name = REPLACE(name, "'", "\\'");

你可能想要准确地考虑为什么你可能想要这样做(正如Tomalak所说)。即使在存储过程中,这些字段也应该是字符串,而不是命令。

答案 2 :(得分:2)

答案 3 :(得分:2)

试试这个:

SELECT REPLACE( REPLACE( name , "'", "\\'" ) , '"', '\\"' )
FROM myescape