Apostrofen utgjør et problem i alle SQL dialekter som brukes for database programmering. For MySQL, som i andre versjoner av SQL, programmerere surround tegndataene med apostrofer å sette inn data i en tabell , oppdatere den eller utføre andre database funksjoner. Problemet oppstår når tegndataene seg selv inneholder apostrofer som punktum. Løsningen ligger i å plassere et spesialtegn umiddelbart før noen apostrofer i karakter data . Apostrof skilletegn
I MySQL versjon av SQL , signaliserer du i begynnelsen og slutten av en streng med enkle anførselstegn eller doble anførselstegn . Begge disse eksemplene er gyldige : en
INSERT INTO COMPANY_TABLE ( COMPANY_NAME ) VERDIER ' The Fish Shack ';
INSERT INTO COMPANY_TABLE ( COMPANY_NAME ) VERDIER " The Fish Shack ";
< p> det følgende eksemplet , men skaper en feil : en
INSERT INTO COMPANY_TABLE ( tag_line ) verdier " Eat på Joes - Det er god mat! ';
SQL ønsker å tolke strengen som « Eat at Joe », med alt etter den andre apostrof som feilaktige. Følgende tekst ikke løser problemet : en
INSERT INTO COMPANY_TABLE ( tag_line ) VERDIER " Eat på Joes - Det er god mat! ";
P Dette ville fungere hvis teksten hadde bare en apostrof mellom de doble anførselstegn , men denne teksten har to. Også , fordi noen Web - side programmeringsspråk bruke anførselstegn seg selv, kan det være lurt å unngå å bruke dem i SQL ditt .
Double Apostrofer og Backslash Escape
MySQL løsningsspesifikasjon er å tolke to apostrofer i en rad - '' - som en enkelt sitat data tegn . En omvendt skråstrek , eller " \\ ", umiddelbart før en apostrof i data har samme effekt . MySQL behandler kombinasjonen av backslash og andre spesialtegn som en escape-sekvens , effektivt skaper en karakter av to. Begge disse eksemplene løse problemet : en
INSERT INTO COMPANY_TABLE ( tag_line ) verdier " ! Eat at Joe '' s - Det '' s Good Food ';
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES ' Eat at Joe \\' s - It \\ ' s Good Food ! ';
Når du skriver programmer som skaper MySQL uttalelser , må du først skanne alle tekststrenger og legge enten en apostrof eller backslash før noen apostrofer i dataene .
addslashes Funksjon
PHP Web programmeringsspråk, ofte brukt i forbindelse med MySQL, har en addslashes funksjon innebygget i å automatisk konvertere apostrofer til backslash - apostrof par. Bare utføre funksjonen på dine data strenger som i dette eksempelet : en
$ tag_line = addslashes ( $ tag_line ) ,
stripslashes Funksjon
Når du har konvertert apostrofer i datavariabler å skråstrek - apostrofer , må du kanskje konvertere dem tilbake til normale data . PHP stripslashes funksjonen utfører denne oppgaven for deg i ett enkelt trinn . Bruk den som i følgende eksempel : en
$ tag_line = stripslashes ( $ tag_line ) ,