SQL插入,这个插入语句定义值的所有这些字符做了什么? “&”“&”'“& N4&”',“&”“&”'“&”Mapping“&”',

时间:2016-03-07 15:27:00

标签: sql syntax insert

这个插入语句中定义值的所有这些字符是做什么的?

"&""&"'"&N4&"',"&""&"'"&"Mapping"&"',

我想了解每个人的作用?我知道N4是一个单元格位置,而Mapping是一个硬编码值。它有效,但是,这里发生了什么?

完成命令:

"insert into partnerrules (name,description,[default],version,doc,[order],active,isComboBox) values("&"'"&P3&"',"&""&"'"&M3&"',"&""&"'"&N3&"',"&""&"'"&"Mapping"&"',"&""&"'"&"856"&"', "&""&"'"&O3&"',"&""&"'"&"1"&"',"&""&"'"&"0"&"'"&")"

1 个答案:

答案 0 :(得分:1)

通过查看代码,它似乎是在VB和“&”中完成的。 character用于将字符串添加到一起,例如

someVar = "hello " & "world"

会导致

"hello world"

因此,尝试做的是在它们周围添加字符串和引号的值以构建sql-insert语句。但是,由于您对sql-injection执行此格式而非参数化,因此执行得很糟糕。对它进行一些研究,因为如果没有更多的实际源代码来展示背景,就没有足够的回应。

complete command: ="insert into partnerrules (name,description,[default],version,doc,[order],active,isComboBox) values("&"'"&P3&"',"&""&"'"&M3&"',"&""&"'"&N3&"',"&""&"'"&"Mapping"&"',"&""&"'"&"856"&"', "&""&"'"&O3&"',"&""&"'"&"1"&"',"&""&"'"&"0"&"'"&")"

会导致以下结果 例如:如果以下变量具有以下值

P3 = "test1"
M3 = "test2"
N3 = "test3"
O3 = "test4"

我在一行上做了明确的换行符,可读性太长了......

    insert into partnerrules (name,description,[default],version,doc,[order],active,isComboBox) values (

现在,您所有报价的区域和&

 'test','test2','test3','Mapping','856','test4','1','0')

我们应该做的更多的事情......下划线是VB中的延续线

DIM OleDbCommand myInsert = new OleDbCommand( "", YourConnection )
myInsert.CommandText = "insert into partnerrules ( name, description, " _
   & "[default], version, doc, [order], active, isComboBox ) " _
   & " values ( ?, ?, ?, 'Mapping', '856', ?, '1','0')

在这种情况下,“?”字符代表PARAMETER PLACE-HOLDERS,用于实际插入表中的内容。然后,按照它们代表的顺序添加您的参数。

myInsert.Parameters.AddWithValue( "parmForName", P3 )
myInsert.Parameters.AddWithValue( "parmForDescription", M3 )
myInsert.Parameters.AddWithValue( "parmForDefault", N3 )
myInsert.Parameters.AddWithValue( "parmForOrder", O3 )

由于提供的内容有限,不确定数据类型。