Maison >développement back-end >tutoriel php >Comment échapper correctement aux guillemets simples pour l'insertion MySQL en PHP ?

Comment échapper correctement aux guillemets simples pour l'insertion MySQL en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 13:40:29864parcourir

How to Properly Escape Single Quotes for MySQL Insertion in PHP?

Échapper aux guillemets simples en PHP pour l'insertion MySQL

Lors de l'insertion de données dans une base de données MySQL à partir de PHP, des caractères spéciaux tels que des guillemets simples peuvent provoquer des erreurs . Pour éviter cela, il est crucial d'échapper à ces caractères avant de les insérer dans la requête.

Le problème décrit dans la question se pose car les données sont collectées et insérées différemment, selon l'origine. La requête 1 rassemble directement les données d'un formulaire soumis, ce qui introduit potentiellement des guillemets simples sans échappement. Dans la requête 2, cependant, les données sont d'abord extraites de la base de données, où les guillemets simples auraient déjà pu être échappés si magic_quotes_gpc était activé.

La solution consiste à échapper les guillemets simples de manière cohérente dans les deux requêtes à l'aide de mysql_real_escape_string(). Cette fonction échappe aux caractères spéciaux et garantit une gestion correcte des guillemets simples, même lorsqu'ils apparaissent dans les données.

Exemple :

<code class="php">$escaped_name = mysql_real_escape_string($name);
$query = mysql_query("INSERT INTO message_log (order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status) VALUES ('$order_id', '" . date('Y-m-d H:i:s', time()) . "', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,' $row->secondary_email', '$subject', '$escaped_name', '1')");</code>

En échappant systématiquement les guillemets simples en PHP avant d'insérer des données dans MySQL , vous pouvez éviter les erreurs potentielles et garantir un traitement précis des données.

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