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