我正在为我创建一个网站并且正在努力学习SQL部分,下面是我正在努力解决的两个单独的陈述,如果你知道什么可能是他们中的任何一个的问题,我很欣赏它。
这是声明
readsql = "SELECT * FROM Gallery WHERE <%=GalleryRs ("img_USERID")%> = <%=session ("usr_ID")%>"
这是错误
预期声明结束
/WIP/Gallery.asp,第20行
readsql =“SELECT * FROM Gallery WHERE&lt;%= GalleryRs(”img_USERID“) -------------------------------------------------- ---- ^
这是第二个陈述
INSERT INTO like (lik_POSTID) VALUES('" &_
request("pos_ID") & "')
和错误
Microsoft Access数据库引擎错误“80040e14”
INSERT INTO语句中的语法错误。
/student/S0190204/WIP/like.asp,第56行
如果你可以帮助任何一个盛大的,谢谢
答案 0 :(得分:1)
尝试
readsql = "SELECT * FROM Gallery WHERE "& GalleryRs("img_USERID")&" = "& session("usr_ID")
&lt;%=%&gt;在asp代码块中没有任何意义。当你想在你的html代码中嵌入一个asp变量时,这就是&#34; =&#34; sign是Response.Write的简写 - 例如
<h1><%= pagetitle %></h1>
另请注意,我已经在#Gallery;&#34; GalleryRs&#34;之后取出了空格。和&#34;会议&#34;
被修改
readsql = "SELECT * FROM Gallery WHERE "& GalleryRs("img_USERID")&" = '"& session("usr_ID") & "'"
答案 1 :(得分:0)
当你的select sql到达数据库时,它应该是这样的:
select *
from Gallery
where img_UserId = something
您正在发送:
select *
from Gallery
where <%= etc
您的字段名称不包含&lt;%。看看你在那里使用变量的原因。除非where子句中的字段每次都不相同,否则不要使用变量。
答案 2 :(得分:0)
readsql = "SELECT * FROM Gallery WHERE <%=GalleryRs ("img_USERID")%> = <%=session ("usr_ID")%>"
应该是
readsql = "SELECT * FROM Gallery WHERE " & GalleryRs("img_USERID") & " = " & session ("usr_ID")
我同意丹,为什么要使用变量作为你的字段名称?除此之外,这段代码具有非常高水平的“sql注入友好性”。至少验证GalleryRs(“img_USERID”)和session(“usr_ID”)中的值是什么(转换为int或检查长度)。更好的是将其移动到存储过程!