【问题标题】:SQL with asp classicSQL 与 asp 经典
【发布时间】:2013-12-15 20:25:43
【问题描述】:

我正在为我的网站创建一个网站,并且正在努力处理 SQL 部分,下面是我正在努力解决的两个单独的语句,如果你知道其中任何一个可能是什么问题,我会很感激。

这是声明

readsql = "SELECT * FROM Gallery WHERE <%=GalleryRs ("img_USERID")%> = <%=session ("usr_ID")%>"

这是错误

预期语句结束

/WIP/Gallery.asp,第 20 行

readsql = "SELECT * FROM Gallery WHERE

这是第二条语句

INSERT INTO like (lik_POSTID) VALUES('" &_
request("pos_ID") & "')

还有错误

Microsoft Access 数据库引擎错误“80040e14”

INSERT INTO 语句中的语法错误。

/student/S0190204/WIP/like.asp,第 56 行

如果你能帮助任何一个,那就太好了,谢谢

【问题讨论】:

    标签: sql ms-access asp-classic


    【解决方案1】:

    试试

    readsql = "SELECT * FROM Gallery WHERE "& GalleryRs("img_USERID")&" = "& session("usr_ID")
    

    在 asp 代码块中没有任何意义。当你想在你的 html 代码中嵌入一个 asp 变量时——“=”符号是 Response.Write 的简写——例如

    <h1><%= pagetitle %></h1>
    

    另外请注意,我已经删除了“GalleryRs”和“Session”之后的空格

    编辑

    readsql = "SELECT * FROM Gallery WHERE "& GalleryRs("img_USERID")&" = '"& session("usr_ID") & "'"
    

    【讨论】:

    • 谢谢这让我更进一步,虽然它现在说类型不匹配。知道这意味着什么吗?
    • GalleryRs("img_USERID") 和 session("usr_ID") 的值是多少?
    • 类型不匹配通常发生在预期数字并且页面接收到字符串时。尝试使用“Cint(GalleryRs("img_USERID"))”和“Cint(session("usr_ID"))”
    • GalleryRS("img_USERID") 不应该是一个字段的名称吗?那么它不能是整数。
    • usr_ID 是“40”,img_USER_ID 也是“40”。一个是“自动编号”,而这只是访问中的“数字”,这会导致问题吗?
    【解决方案2】:

    当它进入数据库时​​,您的 select sql 应该如下所示:

    select *
    from Gallery
    where img_UserId = something
    

    您正在发送:

    select * 
    from Gallery
    where <%= etc
    

    您的字段名称不包括

    【讨论】:

      【解决方案3】:
      readsql = "SELECT * FROM Gallery WHERE <%=GalleryRs ("img_USERID")%> = <%=session ("usr_ID")%>"
      

      应该是

      readsql = "SELECT * FROM Gallery WHERE " & GalleryRs("img_USERID") & " = " & session ("usr_ID")
      

      我同意 Dan 的观点,为什么要使用变量作为字段名称?除此之外,此代码具有非常高水平的“sql 注入友好性”。至少验证 GalleryRs("img_USERID") 和 session ("usr_ID") 中的值是什么(转换为 int 或检查长度)。最好将其移至存储过程!

      【讨论】:

        猜你喜欢
        • 2011-03-23
        • 1970-01-01
        • 2018-10-22
        • 1970-01-01
        • 2011-12-05
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多