Escape de cadenas SQL

Escapa texto para usarlo dentro de una cadena SQL entre comillas simples: duplica las comillas (SQL estándar) o usa escapes con barra invertida de MySQL.

Cada ' se convierte en ''. Funciona en PostgreSQL, SQLite, SQL Server, Oracle y MySQL con NO_BACKSLASH_ESCAPES. En el código de tu aplicación, usa consultas parametrizadas.

Salida

Se ejecuta completamente en tu navegador. Tus datos nunca se suben.

Herramientas Relacionadas

Ver Todas

¿Qué es Escape de cadenas SQL?

SQL Escape convierte un valor de texto sin procesar en una forma que se puede colocar dentro de un literal de cadena SQL entre comillas simples. El modo estándar duplica cada comilla simple (O'Reilly → O''Reilly); el modo MySQL usa escapes con barra invertida como mysql_real_escape_string(). Está pensado para escribir SQL a mano: el código de una aplicación debería usar consultas parametrizadas.

Cómo usar Escape de cadenas SQL

  1. Elige el Estilo de escape: SQL estándar o MySQL.
  2. Si quieres, marca Envolver el resultado en comillas simples.
  3. Escribe o pega el valor sin procesar en el cuadro de entrada.
  4. Copia la salida escapada en tu SQL.

Ejemplo

Entrada
O'Reilly \ x
Salida
O''Reilly \ x

Modo SQL estándar: las comillas se duplican y la barra invertida se mantiene.

Cuándo usar Escape de cadenas SQL

Úsalo para escribir sentencias SQL puntuales, datos semilla o scripts de migración que contienen texto con apóstrofos. No uses el escape de cadenas como protección contra inyección SQL en aplicaciones: usa sentencias preparadas con parámetros. El escape de identificadores (nombres de tablas o columnas) es otro problema y no se cubre aquí.

Cómo funciona Escape de cadenas SQL

SQL estándar (ANSI; PostgreSQL, SQLite, SQL Server, Oracle y MySQL con NO_BACKSLASH_ESCAPES): cada ' se convierte en ''; las barras invertidas son literales y no cambian. Modo MySQL (configuración predeterminada de MySQL/MariaDB): \0, salto de línea, retorno de carro, barra invertida, ', " y Ctrl+Z (0x1A) se prefijan con una barra invertida, igual que mysql_real_escape_string(). En el modo estándar, los saltos de línea se dejan como saltos reales, lo cual es válido dentro de los literales SQL.

Casos de Uso Comunes

  • Insertar nombres como O'Reilly en un INSERT manual
  • Escribir scripts de semillas o migraciones con texto entre comillas
  • Preparar cadenas literales para volcados de MySQL
  • Entender la diferencia entre el escape ANSI y el de MySQL

Nota de Seguridad

El escape no sustituye a las sentencias preparadas. Todo se ejecuta localmente; no se envía nada a ningún servidor.

Preguntas Frecuentes

¿Escapar basta para evitar la inyección SQL?

No. Usa consultas parametrizadas; el escape es propenso a errores y depende de la configuración del servidor y del juego de caracteres.

¿Qué modo debo usar con PostgreSQL?

SQL estándar. Desde PostgreSQL 9.1, las barras invertidas en cadenas normales son literales.

¿Por qué MySQL necesita un escape diferente?

Por defecto, MySQL trata la barra invertida como carácter de escape dentro de las cadenas, así que también hay que escapar las barras invertidas.

Siguientes pasos recomendados

Explora más categorías