那些讨厌的单引号喜欢在MySQL中造成破坏,似乎有堂兄弟!!! 我们有一个系统,用户可以从客户那里获取工作更新,或者粘贴电子邮件内容,或者从几乎任何地方复制粘贴,每次我们迎合一个报价,就会弹出另一个报价。这里是不同的:’ ´ ' `由于我的regex很弱,我的开发伙伴说我应该使用以下方法删除它们:

return Regex.Replace(oldText, @"[’´'`""]", @"");

我不喜欢这样,太不专业了,去掉所有的单引号。我想做的,正如许多论坛所建议的,就是把单引号翻一番。这是对的吗?
return Regex.Replace(oldText, @"[’´'`""]", @"''");

尽管这样,因为在DAL中,他用单引号构造insert语句:
sql.Append(",`to_complete_by`='" + obj.toCompleteBy + "'");

我可以通过将^^更改为这个来避免这个错误吗?
sql.Append(",`to_complete_by`=\"" + obj.toCompleteBy + "\"");

或者正则表达式替换首选方法?

最佳答案

如果您使用的是不支持准备好的语句的旧版本MySQL,那么至少应该利用这样一个事实:现代数据库接口可以模拟数据库本身不支持的这些特性。在您的例子中,这并不是潜在的性能提高,而是通过分离语句语法和值表示来增加安全性。

关于c# - 正则表达式替换不同种类的单引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10487894/

10-16 01:48