2010-02-19 59 views
0

我想更新在这里使用逃脱在MySQL中陈述特殊字符,而使用UPDATE

UPDATE table set field='some_variable' where id=1; 

的问题域是与它的多个特殊字符some_variable comtains数据。所以我不能,因为它打破了,当它遇到的第一个相同的字符(”或“)没有使用“some_variable”或“some_variable”我如何克服这个问题?

感谢。 迈克

回答

1

有两种解决方案,第一种是使用mysql_real_escape_string()第二种是使用准备好的语句,你没有提到你的编程语言是什么,但它肯定支持准备好的语句或真正的转义

除了真正的转义,如果你的字段是char或varchar,你应该修改你的查询如下:

UPDATE table set field='some_variable' where id=1; 
+0

我使用红宝石,我必须使用escape_string,它的工作就像一个魅力,谢谢。 是的,这是一个错误,我纠正它。 – mike 2010-02-19 11:13:06

0

通常,您只需要转义保留字符 - 具体参见MySQL docs。如果您直接执行查询(即:在MySQL shell中),则必须手动转义。大多数语言都会提供一个函数让你逃脱 - 例如在PHP中,它是mysql_real_escape_string()

+0

我使用了escape_string,它为我工作,谢谢。 – mike 2010-02-19 11:13:44