问题出在哪里?
错误:" Microsoft OLE DB Provider for ODBC Drivers错误' 80040e14'
[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]附近的语法不正确 ''
/checkregistrazione.asp,第27行"
代码是:
<%@LANGUAGE = VBScript%>
<%
Dim str_cn
str_cn = ""
str_cn = str_cn & "driver={SQL Server};Server=62.149.153.49;Database=MSSql151186;uid=MSSql151186;pwd=y5ii1s154j;"
Dim rs ' Variabile per il Recordset
' Creo un'istanza per la connessione ed una per il Recordset
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open str_cn ' Apro la connessione al database
Dim nomeutente
nomeutente = Request.Form("nomeutente")
Dim password
password = Request.Form("password")
Dim email
email = Request.Form("email")
Dim nomeimpresa
nomeimpresa = Request.Form("nomeimpresa")
Dim cellulare
cellulare = Request.Form("cellulare")
Dim SQL ' Creo la query SQL
SQL = "INSERT INTO [dbo].[utenti] ([ID_utente], [nome_utente], [password], [email], [nome_impresa], [cellulare]) VALUES ("& 2 &","& nomeutente &","& password &","& email &","& nomeimpresa &","& cellulare &");"
' Apro il Recordset
rs.Open SQL, cn
%>
<html>
<head>
<title>Lettura dei dati da un database</title>
</head>
<body>
<%
' Verifico che la tabella contenga dati
' Se non ne contiene lancio un messaggio di avviso
If rs.EOF = True Then
%>
<p>Errore</p>
<%
' Se invece ne contiene visualizzo i dati in funzione
' della query SQL specificata
Else
While rs.EOF = False
%>
<p>
<h1>Dati inseriti correttamente nel database</h2>
</p>
<%
rs.MoveNext
Wend
End If
%>
</body>
</html>
<%
' Chiudo il Recordset
rs.Close
Set rs = Nothing
' Chiudo la connessione
cn.Close
Set cn = Nothing
%>
请帮帮我!该数据库是MSSQL Server
答案 0 :(得分:0)
您的查询中存在语法错误。因为您的查询中有变量,所以变量中可能存在一些搞乱查询的内容。当我查看您的查询时,最可能的解释是您的文本字段需要引用,如下所示:
SQL = "INSERT INTO [dbo].[utenti] ([ID_utente], [nome_utente], [password], [email], [nome_impresa], [cellulare]) VALUES ("& 2 &",'"& nomeutente &"','"& password &"','"& email &"','"& nomeimpresa &"','"& cellulare &"');"
如果这不能解决问题,请在第24行之后添加以下行:
response.write(SQL)
response.end
这将显示查询,希望您会看到错误。
请注意:
这种混合变量和代码的方式是一个非常大的安全问题,称为SQL注入。您可以阅读有关SQL注入here的更多信息。 (看看例子)
为了防止在经典ASP中注入SQL,有不同的方法。我建议你试试谷歌找一些。 Here就是一个例子。