Der Apostroph Zeichen stellt ein Problem in allen SQL-Dialekte für Datenbank-Programmierung verwendet . Für MySQL, wie in anderen Versionen von SQL , Programmierer Zeichendaten umgeben mit einem Apostroph , um Daten in eine Tabelle einfügen , aktualisieren oder zu anderen Datenbank- Funktionen auszuführen. Das Problem entsteht, wenn Zeichendaten enthält selbst Apostrophe als Satzzeichen . Die Lösung liegt bei der Platzierung einen besonderen Charakter unmittelbar vor keine Apostrophe in Zeichendaten. Apostrophe Delimiter
In der MySQL -Version von SQL , signalisieren Sie den Anfang und das Ende eines Strings mit entweder einzelne oder doppelte Anführungszeichen . Die beiden folgenden Beispiele gelten :
INSERT INTO COMPANY_TABLE ( company_name ) VALUES ' The Fish Shack ';
INSERT INTO COMPANY_TABLE ( company_name ) VALUES " The Fish Shack ";
< p> das folgende Beispiel erzeugt jedoch einen Fehler :
INSERT INTO COMPANY_TABLE ( tag_line ) Werte " bei Joe Essen - Es ist gutes Essen! ';
SQL will , um die Zeichenfolge zu interpretieren " ' Eat at Joe' , " mit allem, was nach dem zweiten Apostroph als fehlerhaft . Der folgende Text nicht das Problem zu beheben :
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES "Essen bei Joe - Es ist gutes Essen! ";
Das würde funktionieren , wenn der Text hatte nur ein Apostroph zwischen den Anführungszeichen , aber dieser Text hat zwei . Auch, weil einige Web - Seite Programmiersprachen Anführungszeichen selbst nutzen , können Sie zu vermeiden, mit ihnen in Ihrem SQL .
Doppelte Apostrophe und Backslash
MySQL -Lösung ist es, zwei Apostrophe hintereinander interpretieren - '' - als eine einzige Kursdaten Charakter. Ein Backslash , oder "\\ " unmittelbar vor einem Apostroph in Daten hat die gleiche Wirkung . MySQL behandelt die Kombination von Backslash und andere Sonderzeichen als Escape-Sequenz , die effektive Erstellung eines Zeichens von zwei . Die beiden folgenden Beispiele das Problem zu lösen :
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES '! Bei Joe Eat '' s - Es '' s Good Food ';
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES s ' bei Joe \\ Eat' - It \\ ' s Good Food ! ';
Wenn Sie Programme, die MySQL -Anweisungen erstellen zu schreiben, müssen Sie sich zunächst scannen alle Ihre Text-Strings und fügen Sie entweder ein Apostroph oder Backslash vor allen Apostrophe in Ihre Daten.
addslashes Funktion
Die PHP Web -Programmiersprache , die häufig in Verbindung mit MySQL verwendet wird, hat eine eingebaute Funktion addslashes automatisch zu konvertieren , um Apostrophe Backslash - Apostroph Paaren. Führen Sie einfach die Funktion auf Ihrem Daten -Strings , wie in diesem Beispiel :
$ tag_line = addslashes ($ tag_line );
stripslashes Funktion
Sobald Sie umgewandelt haben in Apostrophe Daten Variablen Backslash - Apostrophe , können Sie brauchen, um sie zurück zu konvertieren normalen Daten . Die PHP -Funktion stripslashes übernimmt diese Aufgabe für Sie in einem einzigen Schritt . Verwenden Sie es, wie im folgenden Beispiel:
$ tag_line = stripslashes ($ tag_line );