我已经更新了许多记录,但当涉及到包含引号的单词时,我收到此错误:“错误:未公开引用@ 1357”
我知道为什么它会给我这个错误,我只是不知道如何解决它。
以下是一个示例:
UPDATE invnum SET cAccountName
=替换(cAccountName
,'JOHN'S','BEN')
提前致谢。
答案 0 :(得分:2)
在字符串中转义引号:
UPDATE invnum SET cAccountName = replace(cAccountName,'JOHN\'S','BEN')
您希望对此非常小心 - 不正确处理此问题是SQL injection attacks的来源,并且是安全问题的主要来源。
答案 1 :(得分:2)
如果您使用脚本更新记录,请使用内置转义函数。对于PHP将是mysql_real_escape_string
答案 2 :(得分:0)
请改为尝试:
UPDATE invnum SET cAccountName = replace(cAccountName,"JOHN'S","BEN")
如果你需要在一个字符串中使用这两种类型的引号,那么当你在字符串中出现时,你需要转义用来包围字符串的引号类型(否则SQL解释器会认为字符串在它之前结束)实际上。
例如:
Johns becomes "Johns"
John's becomes "John's" or 'John\'s'
"John" becomes '"John"' or "\"John\""
等等。