"Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
news:acqfcj$3m0$1@sunsite.dk...
> I PHP- og SQL-jargon betyder at citere (quote) flere forskellige ting:
>
> - Der er det, at man sætter citationstegn rundt om dataerne, man
> indsætter:
> pg_query("INSERT INTO tabel VALUES ( '1' )");
>
> - og så er der det, at man sætter en omvendt skråstreg foran tegn, der
> kan skabe problemer, f.eks. citationstegn mindt inde i en streng:
>
> $streng = "En lille 'test'";
> pg_query("INSERT INTO tabel VALUES ( '".pg_escape_string($streng)."'
> )");
>
> Hvor vi sagtens kan være enige om, at man altid skal gøre det sidste, så
> er vi til gengæld ikke enige om, at det altid er en god ide at gøre det
> første, når det er et tal, man indsætter. Der er nemlig det gode ved
> det, at man lettere opdager fejl, hvis man ikke har citationstegn om
> værdien.
>
> Et eksempel: Lad os sige, at vi skal finde alle de rækker, hvor id =
> værdien af variablen $id:
>
> pg_query("SELECT navn FROM brugere WHERE id =
> ".pg_escape_string($id)."");
>
> Her er det en fordel at undlade at bruge citationstegn rundt om $id,
> fordi hvis brugeren eller programmøren ved et uheld kommer til at
> tildele $id en streng, så vil databaseserveren protestere, fordi
> sætningen så bliver syntaktisk forkert. Sætter man derimod
> citationstegn rundt om $id, så er SQL-sætningen syntaktisk korrekt, men
> man får ikke det resultat, man ventede, og det er sværere at debugge.
>
> Det skal dog siges, at jeg selv altid sætter citationstegn rundt om
> værdierne - men det er kun fordi, jeg bruger PEAR DB, hvor metoden
> quote() selv sætter citationstegn rundt om værdierne (samt sørger for
> at sætte omvendte skråstrege foran "problem"-tegn).
Det var noget af et svar... Men er det ikke rigtigt at hvis det bare er et
tal, så behøver man ikke apostroffer?
Eller er det kun hvis det er INT datatypen?
--
M.v.h. Morten Jørgensen
www.StartLinket.dk
- Portal - BytteProgrammer -