Escape de String SQL

Faça o escape de texto para usar dentro de uma string SQL entre aspas simples: duplique as aspas (SQL padrão) ou use escapes com barra invertida do MySQL.

Cada ' vira ''. Funciona em PostgreSQL, SQLite, SQL Server, Oracle e MySQL com NO_BACKSLASH_ESCAPES. No código da aplicação, prefira consultas parametrizadas.

Saída

Executa totalmente no seu navegador. Seus dados nunca são enviados.

Ferramentas Relacionadas

Ver Todas

O que é Escape de string SQL?

O Escape de SQL converte um valor de texto bruto em uma forma que pode ser colocada dentro de um literal de string SQL entre aspas simples. O modo padrão duplica cada aspa simples (O'Reilly → O''Reilly); o modo MySQL usa escapes com barra invertida como o mysql_real_escape_string(). Serve para escrever SQL à mão: no código da aplicação, use consultas parametrizadas.

Como usar Escape de string SQL

  1. Escolha o Estilo de escape: SQL padrão ou MySQL.
  2. Se quiser, marque Envolver o resultado em aspas simples.
  3. Digite ou cole o valor bruto na caixa de entrada.
  4. Copie a saída com escape para o seu SQL.

Exemplo

Entrada
O'Reilly \ x
Saída
O''Reilly \ x

Modo SQL padrão: as aspas são duplicadas e a barra invertida permanece.

Quando usar Escape de string SQL

Use-o para escrever comandos SQL pontuais, dados iniciais ou scripts de migração com texto que contém apóstrofos. Não use o escape de strings como proteção contra injeção de SQL em aplicações: use prepared statements com parâmetros vinculados. O escape de identificadores (nomes de tabelas/colunas) é outro problema e não é coberto.

Como funciona Escape de string SQL

SQL padrão (ANSI; PostgreSQL, SQLite, SQL Server, Oracle e MySQL com NO_BACKSLASH_ESCAPES): cada ' vira ''; barras invertidas são literais e permanecem inalteradas. Modo MySQL (configuração padrão do MySQL/MariaDB): \0, nova linha, retorno de carro, barra invertida, ', " e Ctrl+Z (0x1A) recebem uma barra invertida na frente, como no mysql_real_escape_string(). As quebras de linha no modo padrão ficam como quebras reais, o que é válido dentro de literais SQL.

Casos de Uso Comuns

  • Inserir nomes como O'Reilly em um INSERT manual
  • Escrever scripts de seed ou migração com texto entre aspas
  • Preparar strings literais para dumps do MySQL
  • Entender a diferença entre o escape ANSI e o do MySQL

Nota de Segurança

O escape não substitui os prepared statements. Tudo roda localmente; nada é enviado a um servidor.

Perguntas Frequentes

O escape basta para evitar injeção de SQL?

Não. Use consultas parametrizadas; o escape é propenso a erros e depende das configurações do servidor e do conjunto de caracteres.

Qual modo devo usar no PostgreSQL?

SQL padrão. Desde o PostgreSQL 9.1, barras invertidas em strings comuns são literais.

Por que o MySQL precisa de um escape diferente?

Por padrão, o MySQL trata a barra invertida como caractere de escape dentro de strings, então as barras invertidas também precisam de escape.

Próximos passos recomendados

Explore mais categorias