1

那些喜欢在 MySQL 中造成严重破坏的讨厌的单引号,似乎有表亲!!!我们有一个系统,用户可以从客户那里获取工作更新,或者从电子邮件中粘贴内容,或者从几乎任何地方复制和粘贴,每次我们满足一个报价时,就会弹出另一个报价。以下是不同的:’ ´ ' `<--

由于我的正则表达式很弱,我的开发人员说我应该使用以下方法删除它们:

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

我不喜欢这样,它不专业,删除所有单引号。正如许多论坛所建议的那样,我想做的只是将单引号加倍。这是正确的吗?

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

这虽然完成了,因为在他的 DAL 中,他用单引号构造了他的插入语句:

sql.Append(",`to_complete_by`='" + obj.toCompleteBy + "'");

我可以通过更改^^来避免这个错误吗?

sql.Append(",`to_complete_by`=\"" + obj.toCompleteBy + "\"");

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

4

1 回答 1

1

如果您正在使用不支持预准备语句的旧版本 MySQL,您至少应该利用现代数据库接口可以模拟数据库本身不支持的这些功能这一事实。在您的情况下,与其说是潜在的性能提升,不如说是通过分离语句语法和值表示来增加安全性。

于 2012-06-03T13:29:54.977 回答