O caractere apóstrofo representa um problema em todos os dialetos SQL utilizados para a programação de banco de dados. Para o MySQL , como em outras versões do SQL , os programadores cercam dados de caracteres com apóstrofo para inserir dados em uma tabela, atualizá-lo ou para executar outras funções de banco de dados . O problema surge quando os dados de caracteres em si contém apóstrofos como sinais de pontuação. A solução está em colocar um caractere especial imediatamente anterior qualquer apóstrofos em dados de caracteres. Apostrophe delimitador
Na versão MySQL de SQL , você sinalizar o início eo fim de uma string com aspas simples ou duplas . Ambos os exemplos a seguir são válidos :
INSERT INTO COMPANY_TABLE ( company_name ) VALORES 'The Fish Shack ';
INSERT INTO COMPANY_TABLE ( company_name ) VALORES " The Fish Shack ";
o exemplo a seguir , no entanto, cria um erro:
INSERT INTO COMPANY_TABLE ( tag_line ) VALORES ' Coma em Joe - é boa comida! ';
SQL quer interpretar a string como " ' Coma no Joe " , " com tudo após a segunda apóstrofo como errônea. O texto a seguir não corrigir o problema:
INSERT INTO COMPANY_TABLE ( tag_line ) VALORES " Coma em Joe - É boa comida!" ;
Isso funcionaria se o texto tinha apenas um apóstrofo entre as aspas duplas , mas este texto tem dois. Também, porque algumas linguagens de programação de páginas da Web usar próprios aspas , você pode querer evitar usá-los no seu SQL.
Duplo Apóstrofes e de escape barra invertida
solução do MySQL é interpretar dois apóstrofos em uma fileira - '' - como um único caractere dados sobre cotações . A barra invertida , ou "\\ ", imediatamente anterior um apóstrofo em dados tem o mesmo efeito . MySQL trata a combinação de barra invertida e outros caracteres especiais , como uma seqüência de escape , efetivamente criando um personagem de dois. Ambos os exemplos seguintes resolver o problema :
INSERT INTO COMPANY_TABLE ( tag_line ) VALORES ' Coma no Joe '' s - It'' s Good Food ! ';
INSERT INTO COMPANY_TABLE ( tag_line ) VALORES ' Coma no Joe \\' s - It \\ ' s Good Food ! ';
Quando você escreve programas que criam declarações do MySQL , você deve primeiro verificar todos os seus seqüências de texto e adicionar qualquer um apóstrofo ou barra invertida antes de qualquer apóstrofos em seus dados .
addslashes função
A linguagem de programação web PHP, freqüentemente usado em conjunto com o MySQL, tem uma função addslashes construído em para converter automaticamente apóstrofos a barra invertida - apóstrofo pares . Basta executar a função em suas cadeias de dados , como neste exemplo:
$ tag_line = addslashes ( $ tag_line );
stripslashes Função
Uma vez
você
ter convertido apóstrofos em variáveis de dados a barra invertida - apóstrofos , você pode precisar convertê-los de volta para dados normais. A função stripslashes PHP executa essa tarefa para você em um único passo. Use-o como no exemplo a seguir :
$ tag_line = stripslashes ( $ tag_line );