Avatar billede esbenn Nybegynder
02. oktober 2006 - 23:32 Der er 23 kommentarer og
1 løsning

Hvordan erstattes '

Når jeg indsætter noget i min database via en RTE så brokker den sig hvis jeg har en ' i min tekst... Hvordan kan jeg erstatte den, så den ikke brokker sig og der stadig kommer en ' frem når jeg henter det igen??
Avatar billede keysersoze Ekspert
03. oktober 2006 - 00:01 #1
fx;

INSERT INTO tabel (kolonne) VALUES ('" & Replace(DINVARMEDPLING,"'","''") & "')
Avatar billede esbenn Nybegynder
03. oktober 2006 - 07:24 #2
ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's','Kronikker & features m.v.')' at line 1

Virker ikke
Avatar billede keysersoze Ekspert
03. oktober 2006 - 08:46 #3
prøv at kom med hele din sql i stedet for bare fejlen.
Avatar billede esbenn Nybegynder
03. oktober 2006 - 10:09 #4
SQL = "Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('" & titel & "','" & udgivelse & "','"& dato &"','" & beskrivelse & "','" & Replace(tekst,"'","''") & "','" & tyype & "')"

Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('asd','af','1990-9-19','asdas',''','Kronikker & features m.v.')
Avatar billede keysersoze Ekspert
03. oktober 2006 - 11:01 #5
hmm - må indrømme det ser mystisk ud. replace er måden at gøre det på men det ser godt nok ud til at give et sjovt resultat hos dig.

prøv at kom med noget mere kode og forsøg også gerne at teste med lidt mere reele data end bare ingenting og lignende.
Avatar billede tjaz Nybegynder
03. oktober 2006 - 14:09 #6
kan du ikke prøve at lave en response.write SQL inden du laver din insert?

SQL = ".."
response.write SQL
response.end
Avatar billede madssch Nybegynder
03. oktober 2006 - 14:26 #7
Jeg tror du kan undgå problemet, hvis du Replace'r inden indsættelse:

strText = Replace(ditObject, "'", "'")

SQL = "Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('" & titel & "','" & udgivelse & "','"& dato &"','" & beskrivelse & "','" & strText & "','" & tyype & "')"
Avatar billede esbenn Nybegynder
03. oktober 2006 - 23:04 #8
tjaz> Det gør jeg også:
Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('asdjhk','asdas','1990-7-19','asdas','he's driving a car!','Kronikker & features m.v.')

madssch> Desværre...

keysersoze> Du kan få hele den fil der indsætter i databasen:
<% response.buffer=true %>
<%
IF session("login")<>"JA" THEN
Response.Redirect "index.asp?menu=login&umenu=login"
END IF
%>
<html>

<head>
<meta name="Generator" content="Stone's WebWriter 4">
</head>

<body>
<!-- #include file="../db/connection.asp" -->
<%
titel = Request.Form("titel")
udgivelse = Request.Form("udgivelse")
dato = Request.Form("aar") &"-"&Request.Form("man")&"-"&Request.Form("dag")
beskrivelse = Request.Form("beskrivelse")
tyype = Request.Form("type")
strText = Replace(tekst, "'", "&#39;")

%>
<%
if isdate(dato) = true then
Response.write"Gyldig Dato!"
else
Response.redirect"../index.asp?menu=login&umenu=upload&mode=datofejl"
end if
%>
<%
SQL = "Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('" & titel & "','" & udgivelse & "','"& dato &"','" & beskrivelse & "','" & strText & "','" & tyype & "')"
response.write SQL

conn.execute(SQL)
%>
<%
Response.redirect"../RTE.asp?mode=done"
%>
</body>

</html>
Avatar billede madssch Nybegynder
03. oktober 2006 - 23:13 #9
Hvad hedder fejlmeddelelsen nu?
Avatar billede esbenn Nybegynder
03. oktober 2006 - 23:19 #10
Det samme:
ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's','Kronikker & features m.v.')' at line 1
Avatar billede keysersoze Ekspert
04. oktober 2006 - 07:53 #11
jeg tror at du laver nogle underlige ombytninger eller gemmer noget vi ikke må se - for i den stump kode du har givet hos er der noget der ikke giver mening. Hvor sætter du fx variablen "tekst" før du replacer og laver den om til variablen "strText"?

<%
response.buffer=true

IF session("login")<>"JA" THEN
  Response.Redirect "index.asp?menu=login&umenu=login"
END IF
%>
<!-- #include file="../db/connection.asp" -->
<%
titel = Request.Form("titel")
udgivelse = Request.Form("udgivelse")
dato = Request.Form("aar") &"-"&Request.Form("man")&"-"&Request.Form("dag")
beskrivelse = Request.Form("beskrivelse")
tyype = Request.Form("type")
strText = Replace(Request.Form("tekst"), "'", "''")

if isdate(dato) = true then
  Response.write "Gyldig Dato!"
else
  Response.redirect"../index.asp?menu=login&umenu=upload&mode=datofejl"
end if

SQL = "Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('" & titel & "','" & udgivelse & "','"& dato &"','" & beskrivelse & "','" & strText & "','" & tyype & "')"
response.write SQL

conn.execute(SQL)

Response.redirect "../RTE.asp?mode=done"
%>
Avatar billede tjaz Nybegynder
04. oktober 2006 - 13:17 #12
en anden mulighed ville være at bruge:

SQL = "Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('" & titel & "','" & udgivelse & "','"& dato &"','" & beskrivelse & "','" & server.htmlencode(strText) & "','" & tyype & "')"
Avatar billede keysersoze Ekspert
04. oktober 2006 - 14:28 #13
det vil jeg til gengæld mene er en dårlig mulighed - skulle man pludselig få brug for dataene i en anden forbindelse er det ikke sikkert at encodingen passer og så får man problemer. Derfor altid læg data ned som klienten har sendt dem afsted og så tag højde for eventuel encoding ved udtræk.
Avatar billede esbenn Nybegynder
04. oktober 2006 - 18:10 #14
keysersoze> Jeg gemmer ingen kode... Jeg havde leget lidt med den for at prøve noget da jeg lige sendte den ind der, derfor er der hvor jeg hentede selve teksten lige forsvundet.. :-S Men jeg kan da godt lige prøve igen hvor jeg har den med...
Avatar billede keysersoze Ekspert
04. oktober 2006 - 18:30 #15
hvilket resultat giver mit forslag på kode?
Avatar billede esbenn Nybegynder
04. oktober 2006 - 22:32 #16
Desværre dette:

Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('asdsa','asdsa','1990-7-19','asdsa','he's driving a car!','Kronikker & features m.v.')


ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's driving a car!','Kronikker & features m.v.')' at line 1


/upload/indsend.asp, line 35
Avatar billede keysersoze Ekspert
04. oktober 2006 - 22:51 #17
Det forstår jeg simpelthen ikke... jeg er måbende over for dette problem for det giver absolut ingen mening. Prøv med de præcis samme data men bare med denne replace i stedet;

strText = Replace(Request.Form("tekst"), "i", "a")
Avatar billede esbenn Nybegynder
07. oktober 2006 - 16:53 #18
Erm..
Insert into publikationer (titel, udgivelse, dato, beskrivelse, tekst, type) values('asdas','asdas','1990-7-19','sada','he's driving a car!','Kronikker & features m.v.')
ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's driving a car!','Kronikker & features m.v.')' at line 1


/upload/indsend.asp, line 35

Desværre
Avatar billede esbenn Nybegynder
07. oktober 2006 - 17:13 #19
Erm... Jeg havde så lige lidt dumheder i min upload, så jeg ikke fik lagt filen det rigtige sted, men nu virker det med det du har sagt... :-) Tak!
Avatar billede keysersoze Ekspert
07. oktober 2006 - 17:14 #20
det var heller ikke meningen at det skulle løse dit problem - udelukkende en test. den stump kode jeg gav vil under normale omstændigheder replace bogstavet i med bogstavet a - dette sker ikke så jeg er 100% sikker på at der er noget andet der gør det. prøv fx dette;

<%
VAR = "her ser du en pige"
Response.Write VAR & "<br>"
Response.Write Replace(VAR,"g","ll")
%>
Avatar billede keysersoze Ekspert
07. oktober 2006 - 17:17 #21
:)
Avatar billede esbenn Nybegynder
05. november 2006 - 19:47 #22
Må jeg få et svar?! :-D
Avatar billede keysersoze Ekspert
06. november 2006 - 19:46 #23
det har du fået og du har også accepteret?
Avatar billede esbenn Nybegynder
06. november 2006 - 22:42 #24
HA! :D Ja det har jeg også.. :P Tak.. :P
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