100 % local — vos données ne quittent jamais votre navigateur

Échappement SQL — un littéral pour votre requête

Doublez les apostrophes et entourez le tout : un littéral de chaîne ANSI SQL complet, à coller dans la requête que vous tapez à la main dans un client.

Instantané Privé Zéro cookie

Entrée Text

Sortie SQL Escaped

Ce que fait cet outil

Deux choses : il double chaque apostrophe — c’est ainsi que le SQL ANSI écrit une apostrophe dans un littéral — et il encadre le résultat, de sorte que ce qui ressort est un littéral complet.

O'Brien   →   'O''Brien'

Le SQL standard n’a pas d’échappement par antislash, rien d’autre n’est transformé.

C’est l’encadrement qui rend l’aller-retour exact. Sans lui, une apostrophe seule s’échappe en '', que l’outil de déséchappement lit comme une chaîne vide entre apostrophes : le caractère disparaît. quote_literal() de PostgreSQL et SqlString.escape() de Node rendent la forme encadrée pour la même raison. Désactivez Avec apostrophes si vous ne voulez que l’intérieur, à coller entre vos propres apostrophes ; cette forme-là n’est pas réversible.

À lire avant de s’en servir

Échapper les apostrophes n’est pas une défense contre l’injection SQL. C’est une aide à la syntaxe, pas une frontière de sécurité. Toute valeur provenant d’un utilisateur, d’une requête, d’un fichier ou d’un autre système a sa place dans une requête paramétrée — un emplacement que le pilote lie séparément, de sorte que la valeur ne fait jamais partie du texte de la requête et qu’aucun encadrement ne peut en changer le sens.

Cet outil est pour l’autre cas : un littéral que vous tapez vous-même dans une migration, un jeu de données de test ou un SELECT ponctuel, dont le texte contient une apostrophe et dont vous voulez la forme correcte sans compter les guillemets.

Réserve sur les dialectes

La règle ANSI est le plus sûr dénominateur commun, mais elle n’est pas universelle. MySQL, sauf s’il tourne avec NO_BACKSLASH_ESCAPES, traite aussi \ comme caractère d’échappement dans les littéraux : une valeur se terminant par un antislash n’est donc pas entièrement traitée par le seul doublement des apostrophes. Vérifiez votre dialecte avant de vous appuyer là-dessus pour autre chose que du SQL écrit à la main.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Est-ce que cela me protège de l'injection SQL ?
Non, et il ne faut pas s'en servir pour ça. Échapper les apostrophes n'est pas une frontière de sécurité : la seule défense fiable est la requête paramétrée, où la valeur ne devient jamais une partie du texte de la requête. Servez-vous de cet outil pour du SQL que vous écrivez vous-même, pas pour du SQL construit à partir d'une entrée utilisateur.
Pourquoi seule l'apostrophe est-elle doublée ?
Parce que c'est ce que dit la norme ANSI. En SQL standard, un littéral de chaîne est délimité par des apostrophes et une apostrophe interne s'écrit deux fois — il n'existe aucun échappement par antislash.
Est-ce suffisant pour MySQL ?
Pas forcément. Sauf si NO_BACKSLASH_ESCAPES est activé, MySQL traite aussi l'antislash comme caractère d'échappement dans les littéraux, si bien qu'un antislash final peut changer la lecture de l'apostrophe qui suit. Cet outil n'applique que la règle ANSI.
Pourquoi la sortie contient-elle les apostrophes englobantes ?
Parce que c’est le littéral entier, et la seule forme qui survive à un aller-retour. Une apostrophe seule échappée sans encadrement donne `''`, impossible à distinguer d’une chaîne vide entre apostrophes. Désactivez **Avec apostrophes** si vous ne voulez que l’intérieur.

Convertisseurs associés