Sql 字符串文字转义与数据库

Sql 字符串文字转义与数据库,sql,escaping,code-injection,Sql,Escaping,Code Injection,我一直在阅读转义字符串以避免SQL注入。我知道参数化查询是避免注入的最安全的方法。 但是我确实有一个关于转义作为补充参数化查询的方法的问题 假设输入字段名的值为O'Brian,并使用以下例程进行转义: sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'" 所以这个值现在看起来像是OBrian。如果使用Insert查询将其插入到数据库中,那么插入的值实际上是OBRIAN吗 如果是这种情况,那么为了在名称列中搜索插入的值O

我一直在阅读转义字符串以避免SQL注入。我知道参数化查询是避免注入的最安全的方法。 但是我确实有一个关于转义作为补充参数化查询的方法的问题

假设输入字段名的值为O'Brian,并使用以下例程进行转义:

sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"
所以这个值现在看起来像是OBrian。如果使用Insert查询将其插入到数据库中,那么插入的值实际上是OBRIAN吗


如果是这种情况,那么为了在名称列中搜索插入的值OBrian,我是否必须在执行Select查询之前将其转义到OBrian,以将其与插入数据库中的值匹配?

如果使用参数化查询,数据库将存储参数的值,因此,如果param值是O'Brian,那么它将存储O'Brian,如果将其更改为OBrian,那么它将存储OBrian。我想你很容易就能看到结果。你用的是什么数据库?我猜是SQL Server。是的,是SQL Server 2012