Wstaw ciąg z pojedynczym cudzysłowem ('
) lub cudzysłów ("
) w mysql
Po prostu użyj addslashes();
we wstawianiu i stripslashes();
do pobierania danych.
$str = "Hello Friend's.. Hows you all"s.";
// Outputs: Hello Friend\'s..Hows you all\"s.
echo addslashes($str);
stripslashes — Nie cytuj w cudzysłowie ciąg za pomocą addslashes()
. Zwraca łańcuch z usuniętymi odwrotnymi ukośnikami. (\'
staje się '
i tak dalej.) Podwójne odwrotne ukośniki (\\
) są przekształcane w pojedynczy ukośnik odwrotny (\
).
$str = "Hello Friend\'s.. Hows you all"s."; // Outputs: Hello Friend's.. Hows you all"s.
echo stripslashes($str);
Teraz dochodzimy do sedna. Jeśli wstawimy ciąg do bazy danych z pojedynczym lub podwójnym cudzysłowem w następujący sposób:
$str = “Hello Friend's.. Hows you all"s.”;
$query = “INSERT INTO tbl (description) VALUES (‘$str’)”;
Wystąpi błąd, ale jeśli użyjemy addslashes($str)
funkcjonować jak poniżej, a następnie wstawić do bazy danych, wtedy nie wystąpi żaden błąd.
$str = “Hello Friend's.. Hows you all"s.”;
$desc_str = addslashes($str);
$query = “INSERT INTO tbl (description) VALUES (‘$desc_str’)”;
podobnie możemy użyć stripslashes($str)
aby wydrukować tę wartość pola tabeli w następujący sposób:
echo stripslashes($str);