在vb6中存储带空格的句子

时间:2016-12-23 12:35:06

标签: mysql vb6

大家好我想问一下,如果我有文字形式,然后我将这些文字存储在数据库中,它会在左右两侧创建一个空格 例如我把CS340D这样的文本形式符号放在一个数据库中,比如前面和后面的'CS340D'空格,这对我来说是个问题

这是我的插入代码

Private Sub Command1_Click()
cnDB.Execute "INSERT INTO attendance (SNO,s_section,Time) VALUES(' " &    Text1.Text & " ',' " & Text2.Text & " '
Unload Me
End Sub

2 个答案:

答案 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

让我知道它是否有效......