Hej! Hej! Hej igen! ...så här ser resultatet ut: ...det verkade vara variabel-definitionen som spökade...ta en titt på Dim-raden - ett komma-tecken på slutet - bort med det & ersätt # med ' runt datum-variabeln i insert-strängen så fungerar det utmärkt...Insert Into + MySQL
Jag har försökt komma underfund med varför en insert i en MySQL-DB inte fungerar, men det strular. Finns det ngn som har lite koll på vad som kan vara fel - kanske i koden jag klippt in nedan.
Det är koden från submit.asp där jag vill köra insert för att skicka formulärvärdena från mitt gästboksformulär & därmed uppdatera GB:n. Jag får nu bara HTTP500 Internt serverfel. Här kommer koden:
<code>
<% Dim Conn, Namn, Email, Hemsida, Meddelande, Icq, IPnummer, Datum,
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Driver=mySQL;server=localhost;uid=userid;pwd=password;database=databasename"
Namn = Server.HTMLEncode(Request.Form("namn"))
Email = Request.Form("email")
Hemsida = Request.Form("hemsida")
Meddelande = Server.HTMLEncode(Request.Form("Meddelande"))
Meddelande = Replace(Meddelande, vbCrLf, "<br />")
Meddelande = Replace (Meddelande, "'", "#39;")
Icq = Request.Form("icq")
IPnummer = Request.Servervariables("remote_addr")
Datum = Now()
If Hemsida <> "" Then
If Left(Hemsida,7) = "http://" Then
Hemsida = Hemsida
Else
Hemsida = "http://" & Hemsida
End If
End If
Conn.Execute("Insert Into entries(Namn,Email,Hemsida,Meddelande,icq,IPnummer,Datum) Values('"& Namn &"','"& Email &"','"& Hemsida &"','"& Meddelande &"','"& Icq &"','"& IPnummer &"',#"& Datum &"#)")
Conn.Close
Set Conn = Nothing
Response.Redirect ".././?a=g-book" %>
</code>Sv: Insert Into + MySQL
Om du använder MySQL får du byta ut den här raden
Conn.Execute("Insert Into entries(Namn,Email,Hemsida,Meddelande,icq,IPnummer,Datum) Values('"& Namn &"','"& Email &"','"& Hemsida &"','"& Meddelande &"','"& Icq &"','"& IPnummer &"',#"& Datum &"#)")
mot
Conn.Execute("Insert Into entries(Namn,Email,Hemsida,Meddelande,icq,IPnummer,Datum) Values('"& Namn &"', '"& Email &"', '"& Hemsida &"', '"& Meddelande &"', '"& Icq &"', '"& IPnummer &"', '"& Datum &"')")
Bytte alltså ut # mot ' i datumfältet.
Hoppas det fungerar bättre nu!
Lycka till och lev väl,
Tom S.Sv: Insert Into + MySQL
Får du någon mer information än "HTTP 500 Internt serverfel"? För att få ut mer värdefull information vid debug, kan du göra så här i Internet Explorer:
-> Tools -> Internet Options... -> fliken Advanced -> bocka bort "Show friendly HTTP error messages"
Ett annat bra sätt man kan göra om man råkar ut för problem, är att plocka ut själva SQL-strängen och lägga den i en variabel, exempelvis så här:
<code>
strSQL = "Insert Into entries(Namn,Email,Hemsida,Meddelande,icq,IPnummer,Datum) Values('"& Namn &"', '"& Email &"', '"& Hemsida &"', '"& Meddelande &"', '"& Icq &"', '"& IPnummer &"', '"& Datum &"')"
' här kan du skriva ut strSQL för att se att den blir korrekt
Response.Write strSQL
' kör SQL-frågan...
Conn.Execute(strSQL)
</code>
Vad får du nu för felmeddelande?
Hur blir SQL-strängen när du skriver ut den...?
Lycka till och lev väl,
Tom S.Sv: Insert Into + MySQL
Insert Into entries(Namn,Email,Hemsida,Meddelande,icq,IPnummer,Datum) Values('dsfss', 'sfds', 'http://sfdds', 'sfds', 'sfds', '81.224...3', '2003-02-21 13:53:31')Sv: Insert Into + MySQL