Il carattere apostrofo pone un problema in tutti i dialetti SQL utilizzate per la programmazione di database . Per MySQL , come nelle altre versioni di SQL , i programmatori circondano dati carattere con apostrofi per inserire dati in una tabella , aggiornare o eseguire altre funzioni di database . Il problema sorge quando i dati carattere stessi contengono apostrofi i segni di punteggiatura . La soluzione sta nel mettere un carattere speciale che precede immediatamente eventuali apostrofi in dati di tipo carattere . Apostrophe Delimitatore
Nella versione SQL, si segnalano l'inizio e la fine di una stringa con virgolette singole o doppie virgolette . Entrambi gli esempi seguenti sono valide:
INSERT INTO COMPANY_TABLE ( company_name ) VALORI ' The Fish Shack ';
INSERT INTO COMPANY_TABLE ( company_name ) VALORI " The Fish Shack " ;
< p > l'esempio seguente , tuttavia , genera un errore :
INSERT INTO COMPANY_TABLE ( tag_line ) valori ' Eat at Joe - E' Good Food ! ';
SQL vuole interpretare la stringa come "' mangiare al Joe' , " con tutto ciò che segue la seconda apostrofo come erronea . Il testo che segue non risolve il problema :
INSERT INTO COMPANY_TABLE ( tag_line ) VALORI " Mangiare a Joe - E ' Good Food ! " ;
Questo potrebbe funzionare se il testo aveva solo un apostrofo tra le virgolette, ma questo testo ha due. Inoltre, poiché alcuni linguaggi di programmazione web - page utilizzare le virgolette doppie se stessi , si potrebbe desiderare di evitare di usarle nel vostro SQL .
Apostrofi doppie e soluzione Barra rovesciata Fuga
di MySQL è quello di interpretare due apostrofi di fila - '' - come un singolo carattere di dati preventivo. Un carattere di backslash , o "\\ ", che precede immediatamente un apostrofo nei dati ha lo stesso effetto . MySQL tratta della combinazione di barra rovesciata e altri caratteri speciali come una sequenza di escape , creando di fatto un carattere su due. Entrambi gli esempi seguenti risolvere il problema :
INSERT INTO COMPANY_TABLE ( tag_line ) valori ' ! Mangiare a Joe '' s - E '' s Good Food ';
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES ' Eat at Joe \\ ' s - e \\ 's Good Food ! ';
Quando si scrivono programmi che creano le dichiarazioni di MySQL , è necessario prima eseguire la scansione di tutte le stringhe di testo e aggiungere sia un apostrofo o backslash prima di eventuali apostrofi nei dati.