Mysql
 sql >> Database >  >> RDS >> Mysql

L'escape delle virgolette singole nell'inserto PHP/MySQL non funziona

Inserisci una stringa con virgolette singole(' ) o virgolette doppie(" ) in MySQL

Usa semplicemente addslashes(); in Inserimento e stripslashes(); per recuperare i dati.

$str = "Hello Friend's.. Hows you all"s.";
// Outputs: Hello Friend\'s..Hows you all\"s.
echo addslashes($str);

stripslashes — Deseleziona la stringa citata con addslashes() . Restituisce una stringa con barre inverse rimosse. (\' diventa ' e così via.) Doppia barra rovesciata (\\ ) vengono trasformati in una singola barra rovesciata (\ ).

$str = "Hello Friend\'s.. Hows you all"s."; // Outputs: Hello Friend's.. Hows you all"s.
echo stripslashes($str);

Ora veniamo al punto. Se inseriamo una stringa nel database con virgolette singole o doppie in questo modo:

$str = “Hello Friend's.. Hows you all"s.”;
$query = “INSERT INTO tbl (description) VALUES (‘$str’)”;

Si verificherà un errore, ma se utilizziamo addslashes($str) funziona come di seguito e quindi inserisci nel database, quindi non si verificherà alcun errore.

$str = “Hello Friend's.. Hows you all"s.”;
$desc_str = addslashes($str);
$query = “INSERT INTO tbl (description) VALUES (‘$desc_str’)”;

allo stesso modo possiamo usare stripslashes($str) per stampare il valore del campo della tabella in questo modo:

echo stripslashes($str);