07. oktober 2003 - 12:00Der er
10 kommentarer og 1 løsning
problem med apostroffer
Jeg har et tekstfelt hvis indhold bliver indsat i en database problemet er at jeg får en fejl hvis teksten indeholder apostroffer - hvordan undgår jeg det?
Fejlen opstår kun hvis der benyttes apostroffer Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator.
Og hvis databasen kun bruges til webben, kan man anvende replace således: myVar = Replace(Request.Form("myForm"),"'","'") Dette kan dog kun anbefales hvis data _kun_ bruges til webben, da ' her tolkes som '.
-> keysersoze: Det er korrekt! Det er en afvejning af hvilke datainput der er sandsynlige i den enkelte form. Hvis man forestiller sig at der vil komme en lang række indtastninger a la
Jens' cykel Hans' bil Don't write "'" - you'll f... up my database!
Her vil en erstatning med '' være meningsforstyrrende - med mindre man, naturligvis, i output laver en Replace(rs("myVar").Value, "''", "'"), og det er jo et eller andet sted en afart af min model :-)
Øh...? Nej, det er der bestemt ikke! Bliver '' automatisk tolket som ' i output fra en database? Det var jeg ikke klar over. Hvis det er rigtigt, så bøjer jeg mig i støvet og erkender at min model er uhensigtsmæssig. Dog vil jeg sige at man alligevel i html-ouput bør erstatte specielle tegn (', ", &, * etc.) med deres ascii alter ego, såvel som man bør erstatte æ, ø og å.
og mht til ', ", &, * etc så bør disse _heller_ ikke erstattes... kun ' skal erstattes ved indsætning i db - vil man erstatte noget andet skal det være ved udtræk fra databasen.
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.