22. december 2004 - 17:54
Der er
21 kommentarer og 2 løsninger
Fejl i MySql streng
Hej Jeg skal tilføje noget til en database med en SQl streng. Jeg er vandt til at blive et recordset til at tilføje med, men vil du prøve med mysql. Min kode ser således ud: Set my_conn = Server.CreateObject("ADODB.Connection") my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=; UID=; ;" strSQL = "INSERT INTO gaestebog (overskrift, besked, navn, mail, dato, ip) VALUES('"overskrift"', '"besked"', '"navn"', '"mail"', '"dato"', '"ip"')" Den melder fejl i strengen. Men skal der laves en execute eller hvordan gør man? Mvh Morten
Annonceindlæg fra Kommando
22. december 2004 - 18:32
#1
Mangler der ikke nogle & tegn ?
22. december 2004 - 18:33
#2
strSQL = "INSERT INTO gaestebog (overskrift, besked, navn, mail, dato, ip) VALUES('" & overskrift & "', '" & besked & "', '" & navn & "', '" & mail & "', '" & dato & "', '" & ip & "')"
22. december 2004 - 18:36
#3
Nu melder den hvertfald ik fejl men det bliver ik tilføjet til databasen? Her er koden til hele tilføjningsfilen: overskrift = Request.Form("overskrift") besked = Request.Form("besked") navn = Request.Form("navn") mail = Request.Form("mail") dato = FormatDateTime(Now, vbShortDate) ip = Request.ServerVariables("REMOTE_ADDR") besked = Replace(besked,vbCRLF,"<br>") Set my_conn = Server.CreateObject("ADODB.Connection") my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=; UID=; ;" strSQL = "INSERT INTO gaestebog (overskrift, besked, navn, mail, dato, ip) VALUES('" & overskrift & "', '" & besked & "', '" & navn & "', '" & mail & "', '" & dato & "', '" & ip & "')"
22. december 2004 - 18:37
#4
Er alle 5 felter i databasen varchar ?
22. december 2004 - 18:45
#5
my_Conn.execute(strSQL)
22. december 2004 - 19:01
#6
Ja den er jo nok nødvendig ! :-)
22. december 2004 - 19:35
#7
Så virker det :) Bortset fra datoen.. Den kan ikke vise siden pga. den ik har tilføjet datoen ordentlig til databasen... dato = FormatDateTime(Now, vbShortDate) Sku det ikke være rigtigt?
22. december 2004 - 19:45
#8
arne v> Nej de er af typerne: Int, Text og date
22. december 2004 - 19:54
#9
Har fundet ud af det... Send et svar og i får pointene
22. december 2004 - 19:58
#10
Hmm det troede jeg men det virker stadig ik... Jeg fjernede de to '' tegn i strSQL da datoen er et tal.. Det ændrede ik fejlen.. Hvad kan det så være?
22. december 2004 - 20:00
#11
strSQL = "INSERT INTO gaestebog (overskrift, besked, navn, mail, dato, ip) VALUES('" & overskrift & "', '" & besked & "', '" & navn & "', '" & mail & "', #" & dato & "#, '" & ip & "')"
22. december 2004 - 20:05
#12
Du fik den slet ik tilføjet... og meldte denne fejl ved mysql execute...?
22. december 2004 - 20:10
#13
Hmm det blev vist lidt underligt formuleret... Men det laver fejl i tilføjelsen som er i den linje med execute.
22. december 2004 - 20:12
#14
Kan du poste fejlmeddelelsen ?
22. december 2004 - 20:13
#15
nej det er der ged i... mysql vil have datoen i formatet yyyy-mm-dd så du skal lave en dato derser sådan ud.
22. december 2004 - 20:16
#16
dato = year(date) & "-" & month(date) & "-" & day(date) så skulle det være på plads... Og sql'en med en mysql og dato er uden # så den ser sådan ud: strSQL = "INSERT INTO gaestebog (overskrift, besked, navn, mail, dato, ip) VALUES('" & overskrift & "', '" & besked & "', '" & navn & "', '" & mail & "', '" & dato & "', '" & ip & "')"
22. december 2004 - 20:28
#17
måske du skulle tilføje: besked = Replace(besked,vbCRLF,"<br>") besked = Replace(besked,"'","''") ' for at undgå at hvis folk skriver ' breaker den din sql-sætning
22. december 2004 - 21:07
#18
Nu virker det sørme.. Hvor skønt... Men nu står datoen jo omvendt når man udskriver den, er man nød til at ændre det når man udskriver den så?
22. december 2004 - 21:10
#20
Jeg har fået det til at vise datoen rigtig.... Jeg takker mange gange for hjælpen.. Nu skal jeg bare af med mine points.
22. december 2004 - 21:34
#21
du får et svar herfra
22. december 2004 - 21:41
#22
ditto
23. december 2004 - 00:13
#23
på den side der skal udskrive datoen kan du i toppen af koden blot skrive session.lcid = 1030 så udskrives den efter danske regler, og ja når det er session-sat så virker det og derefter på andre sider.
Computerworld tilbyder specialiserede kurser i database-management