[英]Using ASP and INSERT INTO -
我试图创建一个简单的页面,将数据输入数据库,而我的代码如下。
<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<!--#include FILE=dbcano.inc-->
<%
dim username,password,f_name,l_name,objConn,objs,query
username = Request.Form("user")
password = Request.Form("pass")
f_name = Request.Form("fname")
l_name = Request.Form("lname")
if((f_name <> null) or (f_name <> "")) then
response.redirect("patti_account.asp")
else
Set objConn = ConnectDB()
query = "INSERT INTO user (username,password,f_name,l_name) VALUES ('"& username &"','"& password &"','"& f_name &"','"& l_name &"')"
Set objs = objConn.Execute(query)
Response.Redirect ("thankyou.asp")
end if
%>
运行页面时出现此错误:
Microsoft OLE DB提供程序的SQL Server错误'80040e14'
关键字“ user”附近的语法不正确。
create_account.asp,第18行
我已经检查了所有内容,字段名存在并且表名也正确。
有什么建议么?
用户是SQL Server中的保留字。 将其放在方括号中,例如[user] 。
这容易受到SQL注入的攻击。 想象一下,如果有人将其放在姓氏中会发生什么:
');DROP Table [user];--
修复它,否则我将亲自跟踪您,并用湿面打败您,直到您这样做为止。
尝试将其更改为:
query = "INSERT INTO [user] (username,password,f_name,l_name) VALUES ('"& username &"','"& password &"','"& f_name &"','"& l_name &"')"
(转义表名,因为它是保留字)
另外,不要忘记验证键盘输入,因为此代码容易受到SQL注入攻击。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.