Échappement de chaîne SQL

Échappez du texte pour une chaîne SQL entre apostrophes : doublement des apostrophes (SQL standard) ou échappements par antislash MySQL. Guillemets optionnels.

Chaque ' devient ''. Fonctionne avec PostgreSQL, SQLite, SQL Server, Oracle et MySQL en mode NO_BACKSLASH_ESCAPES. Dans le code applicatif, préférez les requêtes paramétrées.

Sortie

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Outils Connexes

Voir Tout

Qu'est-ce que Échappement de chaîne SQL ?

L'échappement SQL convertit une valeur de texte brute en une forme utilisable dans un littéral de chaîne SQL entre apostrophes. Le mode standard double chaque apostrophe (O'Reilly → O''Reilly) ; le mode MySQL utilise des échappements par antislash comme mysql_real_escape_string(). Il sert à écrire du SQL à la main – le code applicatif doit utiliser des requêtes paramétrées.

Comment utiliser Échappement de chaîne SQL

  1. Choisissez la Méthode d’échappement : SQL standard ou MySQL.
  2. Cochez éventuellement Entourer le résultat d’apostrophes.
  3. Saisissez ou collez la valeur brute dans la zone de saisie.
  4. Copiez la sortie échappée dans votre SQL.

Exemple

Entrée
O'Reilly \ x
Sortie
O''Reilly \ x

Mode SQL standard : les apostrophes sont doublées, l'antislash reste.

Quand utiliser Échappement de chaîne SQL

Utilisez-le pour écrire des instructions SQL ponctuelles, des données d'amorçage ou des scripts de migration contenant du texte avec apostrophes. N'utilisez pas l'échappement de chaînes comme protection contre l'injection SQL dans des applications – utilisez des requêtes préparées avec paramètres liés. L'échappement des identifiants (noms de tables/colonnes) est un autre problème, non couvert ici.

Comment fonctionne Échappement de chaîne SQL

SQL standard (ANSI ; PostgreSQL, SQLite, SQL Server, Oracle et MySQL avec NO_BACKSLASH_ESCAPES) : chaque ' devient '' ; les antislashs sont littéraux et restent inchangés. Mode MySQL (réglages par défaut de MySQL/MariaDB) : \0, saut de ligne, retour chariot, antislash, ', " et Ctrl+Z (0x1A) sont précédés d'un antislash, comme avec mysql_real_escape_string(). En mode standard, les sauts de ligne restent de vrais sauts de ligne, ce qui est valide dans les littéraux SQL.

Cas d'utilisation courants

  • Insérer des noms comme O'Reilly dans un INSERT manuel
  • Écrire des scripts d'amorçage ou de migration avec du texte entre apostrophes
  • Préparer des chaînes littérales pour des dumps MySQL
  • Comprendre la différence entre l'échappement ANSI et MySQL

Note de Sécurité

L'échappement ne remplace pas les requêtes préparées. Tout s'exécute localement ; rien n'est envoyé à un serveur.

Questions Fréquentes

L'échappement suffit-il à empêcher l'injection SQL ?

Non. Utilisez des requêtes paramétrées ; l'échappement est source d'erreurs et dépend des réglages du serveur et du jeu de caractères.

Quel mode utiliser pour PostgreSQL ?

SQL standard. Depuis PostgreSQL 9.1, les antislashs dans les chaînes ordinaires sont littéraux.

Pourquoi MySQL nécessite-t-il un échappement différent ?

Par défaut, MySQL traite l'antislash comme caractère d'échappement dans les chaînes ; les antislashs doivent donc aussi être échappés.

Étapes suivantes conseillées

Explorer d'autres catégories