Maison >base de données >tutoriel mysql >Comment échapper aux apostrophes lors de l'insertion de données dans une requête SQL INSERT ?

Comment échapper aux apostrophes lors de l'insertion de données dans une requête SQL INSERT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 03:39:31695parcourir

How to Escape Apostrophes When Inserting Data in an SQL INSERT Query?

IssueInsertingDataWithApostrophesError

Les tentatives d'insertion de données contenant des apostrophes (guillemets simples) à l'aide d'une requête SQL INSERT échouent, déclenchant une erreur de syntaxe SQL en raison de gestion des caractères spéciaux dans MySQL.

Solution

Pour résoudre ce problème, échappez aux apostrophes avec des barres obliques inverses dans les données insérées. La barre oblique inverse agit comme un caractère d'échappement dans SQL, indiquant que le caractère suivant doit être traité littéralement. En échappant aux apostrophes, vous demandez à MySQL de les interpréter comme faisant partie de la valeur des données plutôt que comme des caractères spéciaux qui terminent la chaîne.

Par exemple, au lieu d'utiliser :

INSERT INTO table_name (column_name) VALUES ('Kellog's');

Utilisez :

INSERT INTO table_name (column_name) VALUES ('Kellogg\'s');

Cela indique à MySQL d'insérer la chaîne entière « Kellogg's » comme valeur de la colonne « nom_colonne ».

Considérations supplémentaires

  • Utilisation d'une fonction d'échappement : Certains langages de programmation fournissent des fonctions spécifiquement conçues pour échapper des caractères spéciaux. En PHP, par exemple, vous pouvez utiliser la fonction mysql_real_escape_string() pour échapper automatiquement les apostrophes et autres caractères spéciaux dans les valeurs de données avant de les insérer dans les requêtes SQL.
  • Éviter l'échappement manuel : Tandis que manuellement L'échappement des apostrophes peut fonctionner dans certains cas, il est généralement considéré comme une bonne pratique d'utiliser une fonction d'échappement ou un système de requête paramétré pour empêcher les attaques par injection SQL.

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