我一直试图找到这个语法错误,但似乎无法破解它(经典ASP中的初学者)任何帮助将不胜感激。这是错误消息:
Microsoft JET数据库引擎错误“80040e14”
FROM子句中的语法错误。
/courses/benv/2410/2013s2/3420384/assign1/show.asp,第29行
代码:
<% option explicit %>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>default.asp</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<% dim pic
pic = request.querystring("i")
if pic="" then pic="1"
%>
<!--#include file="dbconn.asp"-->
<div class="container">
<%
dim sql, info
'This is where the Syntax error is.
' 0 1 2 3 4
SQL = "select Images.id, filename, location, Alphabet, Numeric "&_
"from Images "&pic
set info=conn.execute(SQL)
if info.eof then
response.write "<p>No Data Found</p>"
else
response.write "<p>" &_
"id<br>" &_
"filename<br>" &_
"location<br>" &_
"Alphabet<br>" &_
"Numeric<br>" &_
"Description<br>" &_
"</p>"
do
response.write "<p>" &_
info(0) & "<br>" &_
"<a href=""show.asp?i=" & info(0) & """>" &_
"<img src=""images/" & info(1) & """></a>" &_
info(2) & "<br>" &_
info(3) & "<br>" &_
info(4) &_
"</p>"
info.movenext
loop until info.eof
end if
conn.close
%>
</div>
</body>
</html>
答案 0 :(得分:2)
因此,首先,使用在QueryString中传入的值可以自行开启SQL注入 - 您应该真正转向参数化查询。
此外,根据您的评论,如果i
QueryString参数为空,则pic
为1
。哪个会产生你的SQL语句:
select Images.id, filename, location, Alphabet, Numeric from Images 1
最后1
没有意义,这就是您的网页出错的原因。如果您正在尝试设置WHERE子句,则需要更多地填写。 ADO不会为您完成。
您是否希望SQL语句使用i
QueryString参数传入的ID过滤掉图片?然后你的SQL看起来像:
select Images.id, filename, location, Alphabet, Numeric from Images WHERE Images.id = 1
您的代码应如下所示:
SQL = "SELECT Images.id, filename, location, Alphabet, Numeric " & _
"FROM Images WHERE Images.id = " & pic
希望这有帮助!