【问题标题】:INSERT into table doesn't work, I can't understand why [closed]INSERT into table 不起作用,我不明白为什么[关闭]
【发布时间】:2021-09-04 11:51:00
【问题描述】:

我正在尝试将数据(已由用户通过表单输入)插入到 access 数据库中。我没有收到任何错误,但它没有输入数据。有什么想法吗?请帮帮我

<%      
    dim risposta1
    dim risposta2
    dim risposta3
    dim risposta4
    dim risposta5
    dim risposta6
    dim conn
    dim rs
    dim strsql

    risposta1=request.form("risp1")
    risposta2=request.form("risp2")
    risposta3=request.form("risp3")
    risposta4=request.form("risp4")
    risposta5=request.form("risp5")
    risposta6=request.form("risp6")

    set conn=server.createobject("adodb.connection")
    conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("database.mdb")

    strsql="insert into t_risposte(risposta1,risposta2,risposta3,risposta4,risposta5,risposta6) 
        values('" & risp1 & "','" & risp2 &"','" & risp3 & "','" & risp4 & "','" & risp5 & "','" & risp6 & "');" 

    set rs=server.createobject("adodb.recordset")
    rs.open strsql,conn

    response.write  ("<p style='color:white;font-size:20px;text-align:center';>Le tue risposte al questionario sono state registrate</p>")

    set rs=nothing
    conn.close
    set conn=nothing
%> 

【问题讨论】:

  • 您在INSERT 语句中使用了错误的变量名,但无论如何您都不应该这样做,您至少应该使用ADODB.Command 对象来构建参数化查询.

标签: vbscript asp-classic adodb


【解决方案1】:

你设置了变量risposta1=request.form("risp1"),但是在sql字符串中使用values('" &amp; risp1 &amp;,它应该是values('" &amp; risposta1 &amp;

【讨论】:

  • 我认为这不是问题所在。 risp1 是我在表单输入 上设置的名称,所以我认为 risp1 很好,但我不确定。我尝试更改它,但它给了我一个错误,所以 idk...
  • @wazz 是对的 - randomperson 看到真正的错误 - 你制作 sql 的方式很容易从错误的输入中得到错误。
  • @randomperson 这绝对是问题所在。更大的问题是通过将表单发布的值直接传递到 db INSERT 语句中的 SQL 注入漏洞。
  • 好的,但我不知道如何解决它,比如代码应该是什么样子?抱歉,我还在学习,我真的需要你的帮助
  • @randomperson this 应该会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 2018-04-21
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 2021-07-10
相关资源
最近更新 更多