Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'échappement des guillemets simples dans l'insertion PHP/MySQL ne fonctionne pas

Insérer une chaîne avec un guillemet simple (' ) ou guillemet(" ) dans mysql

Utilisez simplement addslashes(); dans Insertion et stripslashes(); pour récupérer des données.

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

stripslashes — Chaîne sans guillemets entre guillemets avec addslashes() . Renvoie une chaîne sans barres obliques inverses. (\' devient ' et ainsi de suite.) Doubles barres obliques inverses (\\ ) sont transformés en une seule barre oblique inverse (\ ).

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

Nous arrivons maintenant au point. Si nous insérons une chaîne dans la base de données avec des guillemets simples ou doubles comme ceci :

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

Cela se produira une erreur, mais si nous utilisons addslashes($str) fonction comme ci-dessous, puis insérez dans la base de données, aucune erreur ne se produira.

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

de même nous pouvons utiliser stripslashes($str) pour imprimer cette valeur de champ de table comme ceci :

echo stripslashes($str);