我有一张这样的桌子......
select * from myescape;
+-----------+
| name |
+-----------+
| shantanu' |
| kumar's |
+-----------+
2 rows in set (0.00 sec)
我需要用''
替换单引号'我还需要转义双引号和反斜杠。
答案 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