Avatar billede bentbent Nybegynder
31. oktober 2003 - 15:41 Der er 10 kommentarer

Insert date i mysql database

Hejsa!

jeg har nedenstående kode som logger besøgende på en hjemmeside! men når den gemmer "date" bliver det til 00000000000 hvorledes omskriver man den så mysql læser den som gyldig!

-------------------------------------

Function fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
End Function

If Session("Count") = "" Then
    Session("Count") = "Hit"

IP = Request.ServerVariables("REMOTE_ADDR")
Referent = Request.ServerVariables("HTTP_REFERER")
Browser = Request.ServerVariables("HTTP_USER_AGENT")
Sprog = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
Host = Request.ServerVariables("HTTP_HOST")
Tid = Time
Dato = date

If Referent = "" Then
Referent = "Direct request"
End If

Sql = "INSERT INTO countlog (IP, Referent, Browser, Sprog, Host, Tid, Dato) VALUES('" & fixQuotes(IP) & "','" & fixQuotes(Referent) & "','" & fixQuotes(Browser) & "','" & fixQuotes(Sprog) & "','" & fixQuotes(Host) & "','" & fixQuotes(Tid) & "','" & fixQuotes(dato) & "')"
con.Execute(Sql)
Avatar billede the_bma_man Nybegynder
31. oktober 2003 - 15:50 #1
Hvilke typer er date-feltet hhv. hvad står der i dato-variablen?
Avatar billede bentbent Nybegynder
31. oktober 2003 - 15:53 #2
datetime
Avatar billede bentbent Nybegynder
31. oktober 2003 - 15:55 #3
0000-00-00 00:00:00 står der i de felter jeg gemmer i
Avatar billede dawin_dk Nybegynder
31. oktober 2003 - 15:58 #4
saml tid og dato i 1 felt.. og skal den bare indeholde hvad det er ligenu så brug de indbyttede funktioner i SQL til at hente det... for mySQL er det vistnok enten Now() eller getDate()
Avatar billede bentbent Nybegynder
31. oktober 2003 - 16:09 #5
men det ændrer vel ikke på at den ikke gemmer datoen i det rigtige format, eller går det??

jeg får stadig 0000-00-00 00:00:00 selvom den kun gemmer i dato!
Avatar billede the_bma_man Nybegynder
31. oktober 2003 - 16:11 #6
Og din dato-variabel - indeholder den en dato?
Prøv at udskrive den, inden du kalder insert til databasen.
Avatar billede bentbent Nybegynder
31. oktober 2003 - 17:08 #7
jeg tror ikke der er en dato-variabel i funktionen! eller hvad mener du??  jeg har lige smidt hele koden fornedn så du kan se!

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/counter.asp" -->
<%
Dim Con
Dim Con_numRows
Dim RS

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open MM_counter_STRING

Con_numRows = 0
%>
<%
Dim usersettings
Dim usersettings_numRows

Set usersettings = Server.CreateObject("ADODB.Recordset")
usersettings.ActiveConnection = MM_counter_STRING
usersettings.Source = "SELECT * FROM senderinformation"
usersettings.CursorType = 0
usersettings.CursorLocation = 2
usersettings.LockType = 1
usersettings.Open()

usersettings_numRows = 0
%>
<%

' Set mailtype
' 1 = JMail
' 2 = ASPMail
' 3 = none
mailtype = usersettings.Fields.Item("Mmailertype")

Function fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
End Function

If Session("Count") = "" Then
    Session("Count") = "Hit"

IP = Request.ServerVariables("REMOTE_ADDR")
Referent = Request.ServerVariables("HTTP_REFERER")
Browser = Request.ServerVariables("HTTP_USER_AGENT")
Sprog = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
Host = Request.ServerVariables("HTTP_HOST")
Tid = TIME
Dato = DATE

If Referent = "" Then
Referent = "Direct request"
End If

Sql = "INSERT INTO countlog (IP, Referent, Browser, Sprog, Host, Dato) VALUES('" & fixQuotes(IP) & "','" & fixQuotes(Referent) & "','" & fixQuotes(Browser) & "','" & fixQuotes(Sprog) & "','" & fixQuotes(Host) & "','" & fixQuotes(Tid) & "','" &fixQuotes(dato) & "')"
con.Execute(Sql)

End If

If mailtype <> "3" Then

SqlMail = "SELECT * FROM mail WHERE ID=1"
Set RS = con.Execute(SqlMail)

Dato = RS("Dato")

If DateDiff("d", Dato, Now) > usersettings.Fields.Item("Mnrdays") Then

    SqlCount = "SELECT COUNT(*) AS CountHits FROM countlog"
    Set RSCount = Con.Execute(SqlCount)
   
    TotalHits = RSCount("CountHits")
    UgeHits = RSCount("CountHits") - RS("Hits")

If mailtype = 1 Then
    Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = usersettings.Fields.Item("Msmtpserver")
        JMail.Sender = usersettings.Fields.Item("Mmailaddress")
        JMail.SenderName = usersettings.Fields.Item("Mmailaddress")
    JMail.Subject = "Website statistics - " & Date()
    JMail.AddRecipient = usersettings.Fields.Item("Mmailaddress")
    JMail.Body = "Statistics for website - " & Date() & vbcrlf & "- - - - - - - - - - - - - -" & vbcrlf & "Total hits : " & TotalHits & vbcrlf & vbcrlf & "Hits since last mail : " & UgeHits & vbcrlf & "- - - - - - - - - - - - - -" & vbcrlf & "More statistics at :" & usersettings.Fields.Item("Mdomainname") & "/counter/statistik.asp" & vbcrlf & vbcrlf
   
    JMail.Priority = 3
    JMail.Execute
    JMail.Close
    Set JMail = Nothing       
   
    SqlUpdate = "UPDATE mail SET Dato = '" & Now() & "', Hits = '" & TotalHits & "' WHERE ID=1"
    con.Execute(SqlUpdate)
   
End If
   
If mailtype = 2 Then   
    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.RemoteHost = usersettings.Fields.Item("Msmtpserver")
      Mailer.FromName = "ASPStats"
      Mailer.FromAddress = usersettings.Fields.Item("Mmailaddress")
    Mailer.Subject = "Website statistics - " & Date()
    Mailer.AddRecipient "ASPStats",usersettings.Fields.Item("Mmailaddress")
    Mailer.BodyText = "Statistics for website - " & Date() & vbcrlf & "- - - - - - - - - - - - - -" & vbcrlf & "Totale hits : " & TotalHits & vbcrlf & vbcrlf & "Hits siden sidste mail : " & UgeHits & vbcrlf & "- - - - - - - - - - - - - -" & vbcrlf & "More statistics at : " & usersettings.Fields.Item("Mdomainname") & "/counter/statistik.asp" & vbcrlf & vbcrlf
  Mailer.SendMail
    Set Mailer = Nothing

    SqlUpdate = "UPDATE mail SET Dato = '" & Now() & "', Hits = '" & TotalHits & "' WHERE ID=1"
    con.Execute(SqlUpdate)

End If
End If

End If
%>
<%
usersettings.Close()
Set usersettings = Nothing
%>
<%
con.Close()
Set con = Nothing
%>
Avatar billede the_bma_man Nybegynder
01. november 2003 - 09:55 #8
Den her er gal:
Sql = "INSERT INTO countlog (IP, Referent, Browser, Sprog, Host, Dato) VALUES('" & fixQuotes(IP) & "','" & fixQuotes(Referent) & "','" & fixQuotes(Browser) & "','" & fixQuotes(Sprog) & "','" & fixQuotes(Host) & "','" & fixQuotes(Tid) & "','" &fixQuotes(dato) & "')"
con.Execute(Sql)

Du insætter en værdi mere end der er felter.
Avatar billede the_bma_man Nybegynder
01. november 2003 - 09:57 #9
Prøv lige efter disse to linier:
Tid = TIME
Dato = DATE

at lave en
response.write Dato
og check, at den faktisk indeholder en dato.
Avatar billede bentbent Nybegynder
01. november 2003 - 14:58 #10
når jeg skriver response.write Dato skriver den 11/1/2003

og jeg ved mysql skal have datoen på denne måde: 2003/11/1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester