Avatar billede msnilsson Nybegynder
02. november 2004 - 15:20 Der er 8 kommentarer og
1 løsning

Apostrof Replace MySQL

OK, jeg har replacet enkelt-apostrof med ' i en meget lang html-kode for at kunne skrive den ind i ét tabelfelt i en MySQL-database. Tanken var at jeg ville replace tilbage når jeg hentede det ud igen, men det giver en "error 507 - unespected error" - lige gyldigt hvad jeg prøver.

Jeg har prøvet:
strMessageBody=Replace(objRS("HTML"),"'","'")

og:
strMessageBody=Replace(objRS("HTML"),"'",chr(39))

og endda:
strMessageBody=objRS("HTML")  'Fejler ikke i sig selv
strMessagebody=Replace(strMessageBody,"'","'")  'Fejler


Som en test har jeg prøvet:
strMessagebody="Hal'lo"
strMessagebody=Replace(strMessageBody,"'","'")
- og det virker.


Hvad er fejlen??? Har det noget at gøre med HTML-koden som hentes? Jeg har prøvet at skrive den ud på siden, *inden* den bliver sat ind i databasen, og det giver det samme problem - så det har vel ikke noget at gøre med databasen???
Avatar billede fennec Nybegynder
02. november 2004 - 15:39 #1
Du kan godt indsætte ' tegneg i databasen. I MySQl skal du bare udskifte den med 2 eller \'. Så er du fri for at skifte tilbage igen når du hiver data ud.
Avatar billede fennec Nybegynder
02. november 2004 - 15:42 #2
replace(DinTekst,"'","''")

eller
replace(DinTekst,"'","\'")

Jeg vil anbefale '' metoden, da jeg ikke er sikker på hvordan andre databaser opfatter \'. Alle dem jeg kender vil godtage ''.
Avatar billede msnilsson Nybegynder
02. november 2004 - 15:52 #3
OK - men jeg får så et problem i min sql-sætning:

strMessagebody=replace(strMessagebody,"'","\'")

        strQ="INSERT INTO tempFPNhtml (NyhedsbrevID,HTML) VALUES (1,"
          strQ=strQ & "'" & strMessagebody & "')"

Når jeg skriver sætningen ud, i stedet for at skrive ind i databasen, får jeg:

INSERT INTO tempFPNhtml (NyhedsbrevID,HTML) VALUES (1,'

Det er mærkeligt, fordi html-koden starter med <html> og der er nogle linjer før den første apostrof kommer. SÅ de første linjer skulle vel komme frem i sql-sætningen?
Avatar billede msnilsson Nybegynder
02. november 2004 - 15:55 #4
Hvis jeg prøver at skrive ovenstående ind i databasen får jeg fejlen "SQLBindParameter not used for all parameters " - men det er vel en følge af at SQL-sætningen ikke bliver skrevet ordentligt, som vist...
Avatar billede fennec Nybegynder
02. november 2004 - 16:18 #5
prøv lige med:
strMessagebody=replace(strMessagebody,"'","''")
Avatar billede msnilsson Nybegynder
02. november 2004 - 18:51 #6
Mit forrige indlæg med den halve sql-sætning var forkert. Se helt bort fra det

Nu har jeg prøvet at kommentere alt hvor der skrives i databasen ud. Så der er en meget lang strMessagebody med HTML for en hel side, og med enkelt-apostroffer - her er de første linjer:

strMessagebody="<html><head>" & VbCrLf
strMessagebody=strMessagebody & "<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>" & VbCrLf

- og sådan fortsætter det.

Hvis jeg nu tilføjer denne linje tilsidst, efter at hele koden er samlet:
strMessagebody=replace(strMessagebody,"'","\'")

-så får jeg en fejl. Det samme gælder hvis jeg i stedet indsætter:
strMessagebody=replace(strMessagebody,"'","''")

Der skrives ikke noget i databasen, dette er den eneste kode. Det skal dog tilføjes at det ligger i en server-side-include-fil i en funktion, som kaldes fra den fil som inkluderer ssi'en.

Fejlmeddelelsen er:

HTTP Error 507
507 Unexpected
The Web server encountered an unexpected error while communicating with the ASP service.
Please contact the server's administrator if this problem persists.

??

Fejlmeddelelsen er
Avatar billede fennec Nybegynder
03. november 2004 - 09:17 #7
Fejler den på replacen eller indsættelse??? Prøv at smide en response.end ind efter replacen.
Avatar billede msnilsson Nybegynder
05. november 2004 - 12:21 #8
Den response.end var meget smart - den kendte jeg ikke :-)

Jeg har opgivet at lave det på denne måde - det er alligevel en lappeløsning på et mere grundlæggende problem. Nu har jeg lavet en løsning med en cookie i stedet, så må det være godt nok indtil videre.

Tak for hjælpen - smid et svar, så får du points...
Avatar billede fennec Nybegynder
05. november 2004 - 12:32 #9
.o) <-- One Eyed Jack
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