使用UPDATE时转义mysql语句中的特殊字符

时间:2010-02-19 10:42:40

标签: mysql sql-update

我正在尝试使用

更新字段
UPDATE table set field='some_variable' where id=1;

这里的问题是some_variable包含其中包含多个特殊字符的数据。所以我无法使用'some_variable'或“some_variable”,因为当它遇到第一个相同的字符('或')时它会中断并失败。我怎么能克服这个?

感谢。 麦克

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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