Nie mogę wstawiać apostrofów w MySQL

MySQL wymaga starannej obsługi tekstu podczas obsługi apostrofów.

Ogranicznik apostrofu

W wersji SQL MySQL początek i koniec ciągu są wskazywane przez pojedyncze cudzysłowy lub podwójne cudzysłowy. Następujące dwa przykłady są prawidłowe:

INSERT INTO COMPANY_TABLE (company_name) WARTOŚCI "The Fish Shack";

INSERT INTO COMPANY_TABLE (company_name) WARTOŚCI "The Fish Shack";

Jednak poniższy przykład generuje błąd:

INSERT INTO COMPANY_TABLE (tag_line) VALUES 'Eat at Joe's - It's Good Food!';

SQL interpretuje ciąg jako "Zjadaj w Joe", a wszystko po drugim apostrofu jest błędne. Poniższy tekst nie rozwiązuje problemu:

INSERT INTO COMPANY_TABLE (tag_line) WARTOŚCI "Jedz w Joe's - It's Good Food!";

To działałoby, gdyby tekst miał pojedynczy apostrof między podwójnymi cytatami, ale ten tekst ma dwa. Ponadto, ponieważ niektóre języki programowania stron internetowych używają podwójnych cudzysłowów, możesz nie używać ich w swoim SQL.

Podwójne apostrofy i odwrócony pasek

Rozwiązanie jest określane przez MySQL interpretujące dwa apostrofy z rzędu ", jako pojedynczy cytat dla danych znakowych. Używając znaku ukośnika odwrotnego lub "\", bezpośrednio przed apostrofem w danych ma taki sam efekt. MySQL traktuje kombinację ukośnika odwrotnego i innych znaków specjalnych jako sekwencji specjalnej, tworząc znak z dwóch. Poniższe przykłady rozwiązują problem:

INSERT INTO COMPANY_TABLE (tag_line) WARTOŚCI "Jedz w Joe" - to dobre jedzenie! ";

INSERT INTO COMPANY_TABLE (tag_line) WARTOŚCI "Jedz u Joe's - It \ 's Good Food!";

Podczas pisania programów do tworzenia zdań w MySQL, pierwszą rzeczą do zrobienia jest zbadanie wszystkich ciągów tekstowych i dodanie apostrofu lub ukośnika wstecznego przed apostrofami w danych.

Funkcja Dodatków

Język programowania PHP jest często używany w połączeniu z MySQL, ma on funkcję o nazwie addslashes, która automatycznie konwertuje apostrofy. Po prostu wykonaj funkcję danych typu string, jak w tym przykładzie:

$ tag_line = addslashes ($ tag_line);

Funkcja Stripslashes

Po przekonwertowaniu apostrofów na zmienne danych w ukośnikach odwrotnych i apostrofach konieczne może być przekonwertowanie z powrotem na normalne dane. Funkcja stripslashes PHP realizuje to zadanie w jednym kroku. Użyj go jako następującego przykładu:

$ tag_line = stripslashes ($ tag_line);