Avatar billede bdef Novice
16. februar 2013 - 22:48 Der er 5 kommentarer og
1 løsning

Felt i ASP til SQL

Jeg har et felt på en ASP side, hvis værdi, skal indsættes i en insert imod en SQL database.

SQL = "INSERT INTO tabel (felt) VALUES('" + Trim(Request.Form("Felt")) + "')"

Det er ikke svært at se at det vil give lidt udfordringer hvis der står en ' i feltet, men hvordan løser jeg så problemet ud over at forbyde '?
Jeg gætter på en løsning med replace(felt,"'","xxx") men hvad skal jeg replace med?
Avatar billede lclemens Nybegynder
16. februar 2013 - 23:36 #1
Du fordobler antallet af dem. Den første kommer til at fungere som escapetegn for den næste.
Avatar billede lclemens Nybegynder
16. februar 2013 - 23:37 #2
Det korrekte er nok at spørge ind til database-motoren, da det kan være forskelligt.
Avatar billede bdef Novice
16. februar 2013 - 23:54 #4
Nu har jeg lavet alle ' om til '', men det hjalp ikke. Fejlen er noget med forkert truncate af tekst.

Eks.: 'I''m sorry, Dave. I''m afraid I can''t do that.'

Det er imod en MS SQL server, men fejlen er jo allerede på ASP siden, som ikke vil sende dette her over videre, da den mener der er uballance i sætningen.

Jeg har fjernet muligheden for at bruge ; i login. Tænkte at det da var det mindste jeg kunne gøre.
Avatar billede keysersoze Ekspert
17. februar 2013 - 00:07 #5
kom med den rigtig fejlmeddelelse, ellers bliver det umuligt at gætte sig til. Men få nu benyttet parametre så du helt slipper for at tænke på replace og sql injection.
Avatar billede bdef Novice
17. februar 2013 - 00:21 #6
Fejlen var at mit felts længde så overgik de 1000 tegn det måtte være. Løsning var at lave feltet til 1500 tegn :-)

Tak for hjælpen
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