webForumDet fria alternativet

Problem att skriva till databas

6 svar · 553 visningar · startad av calson

calsonMedlem sedan dec. 2003487 inlägg
#1

Hej

När jag kör denna gästboken på min dator fungerar skriptet perfekt men så snart jag prövar exakt samma skript på min webhotell (gate9) skrivs medelandet "Inlägget sparat!" precis som om inlägget sparats men inget verkar skrivas in i gästboken? alla andra skript fungerar utom det här?

If request.querystring("do") = "add" Then

  strNamn = request.form("strNamn")
  strEpost = request.form("strEpost")
  strInlagg = request.form("strInlagg")

  If strNamn = "" Then
    response.redirect("main.asp?page=gastbok#add&mess=Du lämnade något fält blankt!")
  End If

  If strEpost = "" Then
    strEpost="@"
  End If

  If strInlagg = "" Then
    response.redirect("main.asp?page=gastbok#add&mess=Du lämnade något fält blankt!")
  End If

  dtmDatum = Now()
  strIp = Request.ServerVariables("REMOTE_ADDR")

  strNamn = Replace(strNamn, "'", "''")
  strNamn = Replace(strNamn, "%", "")
  strEpost = Replace(strEpost, "'", "''")
  strEpost = Replace(strEpost, "%", "")
  strInlagg = Replace(strInlagg, "'", "''")
  strInlagg = Replace(strInlagg, "%", "")

  Set objConr = Server.CreateObject("ADODB.Connection")
  objConr.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=***; DATABASE=***; USER=***; PASSWORD=***; OPTION=3;"

    objConr.Execute("Insert Into tblGb Set intRef_Id=" & session("id") & ", strNamn='" & strNamn & "', strEpost='" & strEpost & "', strInlagg='" & strInlagg & "', strIp='" & strIp & "', dtmDatum='" & dtmDatum & "'")

  objConr.Close : Set objConr = Nothing

  If request.form("strUpload") = "true" And session("lvl") > 3 Then
    response.redirect("main.asp?page=gbUpload&show=upload&datum_ref=" & dtmDatum)
  Else
    response.redirect("main.asp?page=gastbok&mess=Inlägget sparat!")
  End If

End If

Yack på förhand

calsonMedlem sedan dec. 2003487 inlägg
#2

är det någon som vet hur jag kan felsöka ett sådant problem?

@ndersMedlem sedan juni 200032 969 inlägg
#3

Tja, som vanligt: Skriv ut SQL-frågan till webbläsaren istället för att exekvera den.
Du kan också ge dig på den "riktiga" insert-syntaxen istället för MySQL-updatesyntaxhybriden, och se om det blir skillnad.

Jag hoppas att du har inte on error resume next någonstans i koden?

calsonMedlem sedan dec. 2003487 inlägg
#4

nä det har jag inte.
Kan du förklara varför vore jag tacksam :)

Jag hittade felet. Inläggen blev sparade i databasen men datumet var satt till 0 eftersom jag inte hade någon Session.LCID = 1053 på sidan. Antagligen något nytt gate9 gjort

@ndersMedlem sedan juni 200032 969 inlägg
#5

Vad är det du vill att jag ska förklara?

RifflesMedlem sedan juni 2000974 inlägg
#6

Du kanske vill ha en förklaring på vad "on error resume next" betyder?
Eller hur du skriver ut SQL-frågan?

J.N.Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

On Error Resume Next gör exakt det som sägs, när det blir fel, gör nästa sak. Det innebär att om man gör något fel, kommer inte detta fel att märkas, utan resten av koden fortsätter köras.
MYCKET dumt att ha om man felsöker alltså!
http://www.devguru.com/Technologies/vbscript/quickref/onerror.html

En utskrift av sql-frågan innebär att du kan se vad du försöker göra i databasen. Lätt att se om värden saknas eller inte är vad man tror.

objConr.Execute("Insert ...)
ska bli
response.write("Insert ...)

(alt response.write sql-variabel, om man samlar ihop i en sträng.)
126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)