我只是意识到在我的表单中,我不能保存像O'Brian这样的名字(它将只保存为O,并且'Brian将被截断)。
我使用的是带有mysql的grails 1.2.2。
有没有简单的方法可以将‘插入到数据库中?而不是修改每个表单并用html替换该字符?
发布于 2010-07-14 11:17:42
如果插入到数据库中是个问题,那么可以使用参数化查询。强烈建议这样做,因为它避免了可能的安全风险。
想象一下,如果用户在表单中输入"Brian';DROP TABLE data“,而不是只输入一个引号字符!
发布于 2010-07-14 11:15:46
使用转义字符\
例如O\'Brian
请参阅http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html
也就是说,大多数数据库抽象层都允许您使用参数化查询来完成此任务
发布于 2010-07-14 18:40:43
Grails和它的数据库抽象GORM应该为您处理这个问题,除非您自己使用一些低级API来保存它。请参阅文档here。
您不需要自己替换这些字符,所以我建议您再检查一下代码,看看是否能找出可能导致问题的原因。我希望你能找到一个简单的解决方案,使用Grails应该不难:-)
https://stackoverflow.com/questions/3243166
复制相似问题