Maison >développement back-end >tutoriel php >Pourquoi l'échappement des guillemets simples en PHP n'affecte-t-il parfois que les insertions MySQL ?
Échapper aux guillemets simples en PHP lors de l'insertion dans MySQL
Cet article aborde le problème de l'échappement des guillemets simples en PHP lors de l'insertion de données dans MySQL.
Le code fourni montre deux instructions SQL : une pour insérer des données de formulaire dans une base de données et l'autre pour récupérer des données, envoyer un e-mail et enregistrer les détails de la transaction. L'erreur se produit lorsqu'un guillemet simple est présent dans la deuxième instruction, mais pas dans la première.
La différence de comportement provient de la possibilité d'activer magic_quotes_gpc. Cette fonctionnalité échappe aux chaînes de $_GET, $_POST et $_COOKIES. Lorsque les données sont stockées et récupérées à nouveau, il se peut qu'elles ne soient pas échappées automatiquement.
Pour résoudre ce problème, vous devez échapper chaque chaîne dans les deux extraits à l'aide de mysql_real_escape_string().
Exemple with mysql_real_escape_string() :
<code class="php">$order_id = mysql_real_escape_string($order_id); $supplier_id = mysql_real_escape_string($supplier_id); ...</code>
L'échappement des chaînes avant leur insertion dans MySQL garantit que les guillemets simples et autres caractères potentiellement problématiques sont traités correctement, empêchant ainsi les vulnérabilités d'injection SQL et l'exécution incohérente des requêtes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!