.net 如何正确地逃离mysql?

.net 如何正确地逃离mysql?,.net,mysql,.net,Mysql,我刚发现如果我写 select * from tbl where name like @foo 然后添加foo作为一个参数,其值\a(用户数据)将无法正确转义。我勒个去!?!它需要\\a。我情不自禁地感到,即使我在使用参数,我也愿意接受sql注入 如何正确转义变量中的用户数据?我在C#上使用mysql,并使用dapper.net作为我在本文中添加的类似语句 .Replace(@"\", @"\\").Replace(@"_", @"\_").Replace(@"%", @"\%") 你可能想

我刚发现如果我写

select * from tbl where name like @foo
然后添加foo作为一个参数,其值
\a
(用户数据)将无法正确转义。我勒个去!?!它需要
\\a
。我情不自禁地感到,即使我在使用参数,我也愿意接受sql注入


如何正确转义变量中的用户数据?我在C#上使用mysql,并使用dapper.net作为我在本文中添加的类似语句

.Replace(@"\", @"\\").Replace(@"_", @"\_").Replace(@"%", @"\%")

你可能想看看它是否是你想要做的。@tadman:不,我不喜欢存储过程,它似乎在谈论动态参数,这有时几乎是一样的,取决于你的ORM。存储过程没有什么值得“喜欢”的地方。就像你应该吃蔬菜一样,遵循最佳实践。@tadman:好吧,但我仍然不知道如何逃避用户数据