3

次のコードがあります。これは次のように機能します。

  1. URL からいくつかのパラメーターを受け取る
  2. このデータを client というテーブルに挿入します
  3. 次に、clients テーブルに導入された最後のデータを選択します
  4. 最後に、このデータを users という別のテーブルに挿入しようとします。

しかし、私はこのエラーが発生しています:

「Microsoft VBScript ランタイム エラー '800a000d' '800a000d'

タイプの不一致: '[文字列: "INSERT INTO galileo."]'

/createClient.asp、50 行目

50 行目は次のとおりです。

 <%
    Dim insertaUsuario
    Set insertaUsuario = Server.CreateObject("ADODB.Recordset")
    insertaUsuario.ActiveConnection = MM_trucks_STRING
    '" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
    insertaUsuario.Source = "INSERT INTO galileo.users (email,password,clientid) values ('"+(selecciona.Fields.Item("email").Value)+"','"+(selecciona.Fields.Item("password").Value)+"', '" + (selecciona.Fields.Item("id").Value)+ "'"
    insertaUsuario.Open()
    %>

そして、これは完全なコードです:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!--#include file="connects/global.asp" -->
    <%
    Dim inserta__MMColParamEmail
    inserta__MMColParamEmail = "1"
    If (Request.QueryString("email") <> "") Then 
      inserta__MMColParamEmail = Request.QueryString("email")
    End If
    %>
    <%
    Dim inserta__MMColParamPassword
    inserta__MMColParamPasswordd = "1"
    If (Request.QueryString("password") <> "") Then 
      inserta__MMColParamPassword = Request.QueryString("password")
    End If
    %>

    <%
    Dim inserta
    Set inserta = Server.CreateObject("ADODB.Recordset")
    inserta.ActiveConnection = MM_trucks_STRING
    '" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
    inserta.Source = "INSERT INTO galileo.clients (email,password) values ('" + Replace(inserta__MMColParamEmail, "'", "''") + "','" + Replace(inserta__MMColParamPassword, "'", "''") + "')"
    inserta.Open()
    %>
    <%

    Dim selecciona
    Dim selecciona_numRows

    Set selecciona = Server.CreateObject("ADODB.Recordset")
    selecciona.ActiveConnection = MM_trucks_STRING
    selecciona.Source = "SELECT id, email, password from clients where email='" + Replace(inserta__MMColParamEmail, "'", "''") + "' and password='" + Replace(inserta__MMColParamPassword, "'", "''") + "'"
    selecciona.CursorType = 0
    selecciona.CursorLocation = 2
    selecciona.LockType = 1
    selecciona.Open()

    selecciona_numRows = 0
    %>
    <%= (selecciona.Fields.Item("id").Value)%>, <%= (selecciona.Fields.Item("email").Value) %>, <%= (selecciona.Fields.Item("password").Value) %>


    <%
    Dim insertaUsuario
    Set insertaUsuario = Server.CreateObject("ADODB.Recordset")
    insertaUsuario.ActiveConnection = MM_trucks_STRING
    '" + Replace(posicionFechaFin__MMColParam, "'", "''") + "'
    insertaUsuario.Source = "INSERT INTO galileo.users (email,password,clientid) values ('"+(selecciona.Fields.Item("email").Value)+"','"+(selecciona.Fields.Item("password").Value)+"', '" + (selecciona.Fields.Item("id").Value)+ "'"
    insertaUsuario.Open()
    %>

    <!--If it is all ok, it redirects-->
    <% Response.redirect ("default.asp")%>
4

1 に答える 1

4

SQL 文字列の最後の ' の後に ')' がありません。しかし、なぜこのようなエラー メッセージが表示されるのかはわかりません。

于 2013-03-17T19:55:41.180 に答える