Apostrofen karaktär utgör ett problem i alla SQL dialekter som används för databasprogrammering . För MySQL , som i andra versioner av SQL , programmerare surround teckendata med apostrofer för att infoga data i en tabell , uppdatera den eller utföra andra databas funktioner . Problemet uppstår när teckendata sig innehåller apostrofer som skiljetecken . Lösningen ligger i att placera en särskild karaktär som omedelbart föregår eventuella apostrofer i teckendata . Apostrophe Delimiter
MySQL versionen av SQL , signalerar du i början och slutet av en sträng med antingen enkla citationstecken eller dubbla citattecken . Båda de följande exemplen är giltiga :
INSERT INTO COMPANY_TABLE ( company_name ) VALUES " The Fish Shack " ,
INSERT INTO COMPANY_TABLE ( company_name ) VALUES " The Fish Shack " ;
följande exempel skapar emellertid ett fel :
INSERT INTO COMPANY_TABLE ( tag_line ) värden " Äta på Joes - det är bra mat ! " ,
SQL vill tolka strängen som " " Eat at Joe " , " med allt efter den andra apostrof som felaktiga . Följande text åtgärdar inte problemet :
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES " Äta på Joes - Det är bra mat ! " ,
Detta skulle fungera om texten hade bara en apostrof mellan citationstecken , men denna text har två . Dessutom , eftersom vissa webb - sida programmeringsspråk använder citationstecken själva , kanske du vill undvika att använda dem i din SQL .
Dubbla Apostrofer och Backslash Escape
MySQL : s lösning är att tolka två apostrofer i rad - '' - som en enda citat uppgifter karaktär . Ett omvänt snedstreck , eller " \\ ", som omedelbart föregår en apostrof i data har samma effekt . MySQL behandlar kombinationen av omvänt snedstreck och andra specialtecken som ett escape-sekvens , effektivt skapa en karaktär av två . Båda av följande exempel lösa problemet :
INSERT INTO COMPANY_TABLE ( tag_line ) värden " ! Eat at Joe '' s - Det '' s Good Food " ,
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES " Eat at Joe \\ ' s - Det \\ ' s God mat ! " ,
När du skriver program som skapar MySQL uttalanden , måste du skannar först alla textsträngar och lägg antingen en apostrof eller snedstreck innan några apostrofer i dina uppgifter .
Addslashes Funktion
PHP Web programmeringsspråk , ofta tillsammans med MySQL , har ett addslashes inbyggd funktion i att automatiskt konvertera apostrofer till backslash - apostrof par . Bara utföra funktionen på din datasträngar som i detta exempel :
$ tag_line = addslashes ( $ tag_line ) ,
Stripslashes fungera
När du har konverterat apostrofer i datavariabler att backslash - apostrofer , kan du behöva konvertera dem tillbaka till normala uppgifter . PHP stripslashes funktion utför denna uppgift för dig i ett enda steg . Använd den som i följande exempel :
$ tag_line = stripslashes ( $ tag_line ) ,