Avatar billede mrcorex Nybegynder
26. november 2001 - 10:57 Der er 5 kommentarer og
1 løsning

Data-validering/konvertering?

Hej rødder.

Jeg har en sql-streng som ser sådan ud:

$sql = \"update test set felt = \'(\")(\')\' where id = 734\";

Fejlen er at der er et \' for meget i strengen, MEN det skal med over i databasen. Jeg ved at jeg kan bare sætte \'\' men det er jeg ikke herre over. Jeg får bare sql-strengen overført på denne måde til min funktion.

Hvad kan jeg gøre?
Avatar billede mrcorex Nybegynder
26. november 2001 - 10:57 #1
\'\' er lig med 2 x \'

/CoRex
Avatar billede osaka_san Nybegynder
26. november 2001 - 11:02 #2
Hvis strengen altid har den form så kan du vel tælle ind fra højre indtil du møder nr 2 \' derefter tjekker om der står et \' til venstre for det, hvis der ikke gør det så indsætter du et \'.

Sikkert ikke den smarteste måde at gøre det på, men okay nu er jeg heller ikke specielt hardcore programmør :-)

Afhængig af hvilket sprog du skriver i findes dersikkert forskellige funktioner til hvordan du kan gå ind og tjekke en bestemt tegnkombination. Den ovenfor angivne tankegang er baseret på min minimale viden omkring VB :-)

De bedste Hilsner
Oscar Eg Gensmann
Avatar billede mrcorex Nybegynder
26. november 2001 - 11:04 #3
Jo, men problemet er at der kan være mange felter i den streng og et \' omgiver jo felt-data\'ene. Og det er ikke sikkert at der står en \' hver gang.
Avatar billede alvion Nybegynder
26. november 2001 - 11:23 #4
Som jeg ser det, er der kun to løsninger:

a) Lav en SQL-fortolker, så du dermed kan \"ramme\" de rigtige anførselstegn
b) Få konverteret anførselstegnene inden sql-sætningen bliver lavet og dermed inden din funktion for den overført.

Vi kan jo hurtigt udelukke a) som rent tidsspilde, derfor er der kun b) tilbage. Der er ikke andet at gøre.
Avatar billede mrcorex Nybegynder
26. november 2001 - 11:33 #5
alvion>Punkt b har jeg allerede tænkt på, men faren er der stadig. I min php.ini er \"magic_quotes_gpc\" allerede sat til on og det skulle klare det meste, MEN.....

Jeg har allerede lavet en funktion som konverterer dette til de rigtige tegn, men desværre glemmer mine brugere af mit db-api nogle gange disse funktioner og så kan jo lige så godt prøve at fange det.

Hmm. Det lyder ikke som om der er nogen løsning.
Avatar billede mrcorex Nybegynder
26. november 2001 - 12:03 #6
Hmmm. Man kan nok ikke bare lige gøre det. æv æv æv æv æv!
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
Computerworld tilbyder specialiserede kurser i database-management

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