Maison >développement back-end >tutoriel php >Pourquoi l'échappement des guillemets simples en PHP n'affecte-t-il parfois que les insertions MySQL ?

Pourquoi l'échappement des guillemets simples en PHP n'affecte-t-il parfois que les insertions MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 11:55:29807parcourir

Why Does Escaping Single Quotes in PHP Only Affect MySQL Inserts Sometimes?

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn