Apostroffen karakter udgør et problem i alle SQL dialekter bruges til database programmering. For MySQL, som i andre versioner af SQL programmører surround tegndata med apostroffer til at indsætte data i en tabel , skal du opdatere det eller til at udføre andre database -funktioner. Problemet opstår, når tegndata selv indeholder apostroffer som tegnsætningstegn . Løsningen ligger i at placere et specialtegn umiddelbart forud eventuelle apostroffer i tegndata . Apostrof Afgrænser
MySQL version af SQL , du signalerer begyndelsen og slutningen af en streng med enten enkelte citater eller dobbelte anførselstegn . Begge de følgende eksempler er gyldige : Hej
INSERT INTO COMPANY_TABLE ( COMPANY_NAME ) VALUES 'The Fish Shack «
INSERT INTO COMPANY_TABLE ( COMPANY_NAME ) VALUES " The Fish Shack "
< p> det følgende eksempel, men skaber en fejl : Hej
INSERT INTO COMPANY_TABLE ( tag_line ) værdier " Eat at Joe - Det er god mad ! ";
SQL ønsker at fortolke strengen som '" Eat at Joe '," med alt efter den anden apostrof som fejlagtig. Den følgende tekst ikke løser problemet : Hej
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES " Eat at Joe - Det er god mad ! "
Dette ville fungere, hvis teksten havde kun én apostrof mellem de dobbelte anførselstegn , denne tekst , men har to. Også fordi nogle Web - side programmeringssprog bruge dobbelte anførselstegn selv , kan du ønsker at undgå at bruge dem i din SQL.
Dobbelt Apostroffer og Backslash flugt
MySQL løsning er at fortolke to apostroffer i træk - '' - som en enkelt citat data tegn. En baglæns skråstreg eller "\\ ", umiddelbart forud en apostrof i data har den samme virkning . MySQL behandler kombinationen af backslash og andre specialtegn som en escape-sekvens , effektivt at skabe et tegn ud af to. Begge de følgende eksempler løse problemet : Hej
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES '! Eat at Joe '' s - Det '' s Good Food «
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES ' Eat at Joe \\ ' s - Det \\ 's Good Food ! ";
Når du skriver programmer, der skaber MySQL udsagn , skal du først scanne alle dine tekststrenge og tilsæt enten en apostrof eller baglæns skråstreg før eventuelle apostroffer i dine data.
addslashes Funktion
PHP Web programmeringssprog, der ofte anvendes i forbindelse med MySQL, har en addslashes funktion indbygget i til automatisk at konvertere apostroffer til backslash - apostrof par. Du skal blot udfylde den funktion på dine datastrenge som i dette eksempel : Hej
$ tag_line = addslashes ($ tag_line ),
Stripslashes Funktion
Når du have konverteret apostroffer i datavariabler at backslash - apostroffer , skal du måske til at konvertere dem tilbage til normale data. PHP stripslashes Funktionen udfører denne opgave for dig i et enkelt trin. Brug den som i det følgende eksempel : Hej
$ tag_line = stripslashes ($ tag_line ),