14. januar 2004 - 21:33Der er
17 kommentarer og 1 løsning
Metode i ASP til tilpasning af streng til database
Jeg har brug for en metode som tilpasser en streng til en database. Dvs. den skal tilpasses til min SQL sætning. Det den i grunden skal gøre er at fjerne "kritiske" tegn fra strengen så jeg ikke får fejl når jeg execute'er den. Jeg ved det findes til PHP, men findes det også til ASP?
Ja ok... den har jeg også lavet nu, men jeg tænkte om der var en funktion som fjerner alle på én gang. Det er lidt problematisk at skulle skrive dem alle flere gange. (der kan man selvfølgelig bare selv lave funktionen)
Helt i orden :) Jeg skal have fjernet både " og ' fra mine sætninger da det er bygget sådan op at " afslutter min: SQL = "..... og ' afslutter og starter mine variabler i selve sætningen: WHERE by = 'hello' Men der findes altså ikke en funktion som selv sørger for dette :(
Der ingen grund til at fjerne " det stopper ikke SQL = "... linjen. Hvis man i en streng vil skriver " skriver man også to efter hinanden "": str = "en test "" der var kun en når man skriver den ud"
Men ja så må man selv lave en funktion som kan ændre det man ønsker.
>>>Eagleeye. Har du nogle forslag til hvad man skal udskifte ' og " til? Jeg bruger lige nu ' = | og " = ¤ i den henseende at det ikke er tegn som normalt bliver benyttet så ofte.
Jeg har lige lavet en funktion som minder lidt om din... Jeg har lagt den i en seperat fil så den kan include'es der hvor jeg skal bruge den: <% funktion tildb(streng) streng = replace(streng, """", "|") streng = replace(streng, "'", "¤") response.Write(streng) end funktion
OK det ser lidt underlig ud her på siden... jeg har lige tilpasset den så det er nemmere at se: <% funktion tildb(streng) streng = replace(streng, " " " ", "|") streng = replace(streng, " ' ", "¤") response.Write(streng) end funktion
Men hvis du ændre en ' til to '' så behøver du kun replace en gang før du smider i databasen når du skriver det ud vil der kun være en ' og der er som før sagt ikke nødvenigt at ændre en " til to "".
Ja det må være nyt, og en fejl, man får mail på for sine egne svar. Det har jeg nu ikke modtaget.
Hvis vi taget et lille eks, i et input felt kaldet navn skriver man: Hej "allesammen"
Når man ligger i databasen hedter man strengen str = Request.Form("navn") SQL = "INSERT INTO BLA(besked) VALUES('" & str & "');"
Skriver man så SQL sætningen ud vil der stå: INSERT INTO BLA(besked) VALUES('Hej "allesamme"');
men det som ligger i strengen er dette hvis man kunne se alle tegn: INSERT INTO BLA(besked) VALUES('Hej ""allesamme""'); Præsis som man i PHP skriver \ foran " i en echo.
Hvis man vil skrive sin SQL sætning ud i et som en streng skal man skrive to efter hinanden sådan her: SQL = "INSERT INTO BLA(besked) VALUES('Hej ""allesammen""');"
Og skriver man så SQL sætningen ud vil der stå: INSERT INTO BLA(besked) VALUES('Hej "allesamme"');
I SQL skriver man to pinger efter hinanden for at få en ' og på samme måde gøre man i VBScript med " i strenge. Hvis man vil havde en " i en streng skal man skrive to "".
OK.. så det du siger er at " udligner sig selv når det kommer ind som streng... Det havde jeg faktisk ikke tænkt på :) Tak for det... Nu synes jeg du har fortjent dine 15 point :D Nu har du før fået point af mig og det er sikkert ikke sidste gang. Du får for lidt for dette, men du får bare nogle ekstra næste gang...OK!?
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.