2011-08-18 9 views
-3
語句錯誤的結束

將數據插入數據庫時​​,會出現以下錯誤的例外在ASP

「語句的例外結束」

sqlstr = "INSERT INTO tblContact (Email,FirstName,LastName,Comments) VALUES ('" & Email & "', '" & First Name & "','" & Last Name & "','" & Comments & "')" 
objConn.Execute sqlstr 

回答

2

嘗試使用單個詞的標識符您名字和姓氏變量:

sqlstr = "INSERT INTO tblContact (Email,FirstName,LastName,Comments) " & _ 
     " VALUES ('" & Email & "', '" & FirstName & "','" & LastName & "','" & Comments & "')" 
objConn.Execute sqlstr 

假設你'已經在你的VBScript中得到了那些名字爲的變量,這將用Expected end of statement解決你當前的問題。

您的第二個問題是您的代碼的SQL注入漏洞

爲了幫助解決這個問題,請參見:

+0

我仍然有錯誤,是在插入查詢任何問題,請告訴我sqlstr = 「INSERT INTO [tblContact]([郵件],[名字],[姓氏],[評論])VALUES('」 &電子郵件和「','」&名字&「','」和姓氏&「','」和評論&'')「 – Rameez

+1

@Rameez:不幸的是,你完全錯過了這一點。初始化'sqlstr'時,您不能在變量名中使用空格。你不能使用'名字'。修改你的代碼爲'FirstName'。其次,編輯你的問題來顯示ENTIRE代碼,尤其是你在初始化'Email','FirstName','Comments'(這些值來自哪裏)? –

1

你可能有單引號中的值之一,導致無效的SQL。你必須逃避單引號,但更好的是重寫你的代碼來使用參數。

sqlstr = "INSERT INTO tblContact (Email, FirstName, LastName, Comments) " & _ 
    " VALUES ('" & Replace(Email, "'", "''") & "', '" & Replace(FirstName, "'", "''") & "', '" & Replace(LastName, "'", "''") & "', '" & Replace(Comments, "'", "''") & "')" 
objConn.Execute sqlstr