大家好我想问一下,如果我有文字形式,然后我将这些文字存储在数据库中,它会在左右两侧创建一个空格 例如我把CS340D这样的文本形式符号放在一个数据库中,比如前面和后面的'CS340D'空格,这对我来说是个问题
这是我的插入代码
Private Sub Command1_Click()
cnDB.Execute "INSERT INTO attendance (SNO,s_section,Time) VALUES(' " & Text1.Text & " ',' " & Text2.Text & " '
Unload Me
End Sub
答案 0 :(得分:1)
您的INSERT INTO
查询似乎不太可能如您的问题所示,因为您的VALUES
子句缺少右括号。
VALUES(' " & Text1.Text & " ',' " & Text2.Text & " '
并且,您将使用此查询将空格放入数据库列中。
在文本替换后变为
VALUES(' CS340D ',' somethingElse '
您可能希望在替换后看起来像这样。
VALUES('CS340D','somethingElse')
要做到这一点,试试这个。
VALUES('" & Text1.Text & "','" & Text2.Text & "')"
并且,您必须清除这些文本值或使您自己承受系统上SQL注入攻击的风险。如果有人为你提供Text2值,那该怎么办
You are pwned!'); DROP TABLE attendance; --
替换后你得到
VALUES('CS340D','You are pwned!'); DROP TABLE attendance; --')
会破坏你的一周。
答案 1 :(得分:0)
这应该适合你,首先我们将纠正你的sql语句,防止sql注入,然后在字符串的开头和结尾各添加一个空格。
Private Sub Command1_Click()
Dim text1 As String
Dim text2 As String
text1= Replace$(Text1.Text, "'", "''")
text2= Replace$(Text2.Text, "'", "''")
cnDB.Execute "INSERT INTO attendance (SNO,s_section,Time) VALUES('" & Space(1) & text1 & Space(1) & "',' " & Space(1) & text2 & Space(1) & "')"
Unload Me
End Sub
让我知道它是否有效......