El carácter de apóstrofo presenta un problema en todos los dialectos SQL utilizadas para la programación de bases de datos . Para MySQL , como en otras versiones de SQL , los programadores rodean datos de caracteres con apóstrofes para insertar datos en una tabla, actualizar o realizar otras funciones de base de datos . El problema surge cuando los propios datos de caracteres contiene apóstrofes como signos de puntuación . La solución está en la colocación de un carácter especial que precede inmediatamente cualquier apóstrofes en datos de caracteres. Apostrophe delimitador
En la versión de MySQL SQL , que señalan el principio y el final de una cadena con comillas simples o comillas dobles . Los dos ejemplos siguientes son válidos :
INSERT INTO COMPANY_TABLE ( company_name ) VALORES ' The Fish Shack ' ;
INSERT INTO COMPANY_TABLE ( company_name ) VALORES " The Fish Shack " ;
< p > En el ejemplo siguiente, sin embargo , genera un error:
INSERT INTO VALORES COMPANY_TABLE ( tag_line ) ' Eat at Joe - Es buena comida! " ;
SQL quiere interpretar la cadena como " ' Comer en Joe ' , " con todo lo que después de la segunda apóstrofe como errónea . El siguiente texto no se soluciona el problema:
INSERT INTO VALORES COMPANY_TABLE ( tag_line ) " Eat at Joe - Es buena comida!" ;
Esto funcionaría si el texto sólo tenía un apóstrofe entre las comillas dobles , pero este texto tiene dos. Además, debido a que algunos lenguajes de programación de páginas Web utilizan comillas sí , es posible que desee evitar su uso en el SQL .
Apóstrofes dobles y solución Backslash escape
de MySQL es interpretar dos apóstrofes en una fila - '' - como un solo carácter de datos cotización. Una barra invertida o " \\ ", inmediatamente antes de un apóstrofe en los datos tienen el mismo efecto. MySQL trata la combinación de barra invertida y otros caracteres especiales, como una secuencia de escape , creando un personaje de cada dos . Los dos ejemplos siguientes solucionar el problema :
INSERT INTO VALORES COMPANY_TABLE ( tag_line ) ' Coma en Joe '' s - It'' s Good Food ' ;
INSERT INTO COMPANY_TABLE ( tag_line ) VALUES ' Eat at Joe \\ ' s - It \\ ' s Good Food ! ' ;
al escribir programas que crean estados de MySQL , primero debe explorar todas las cadenas de texto y añada ya sea un apóstrofe o barra invertida antes de que los apóstrofes en sus datos.
función addslashes
El lenguaje de programación web PHP , que se utiliza con frecuencia en combinación con MySQL, tiene una función integrada en addslashes para convertir automáticamente apóstrofes a pares barra invertida - apóstrofe . Basta con realizar la función de sus cadenas de datos como en este ejemplo :
$ tag_line = addslashes ($ tag_line ) ;
stripslashes Función
Una vez que han convertido apóstrofes en las variables de datos de escape al apóstrofes , es posible que necesite para convertir de nuevo a los datos normales. La función stripslashes PHP realiza esta tarea para usted en un solo paso. Úselo como en el siguiente ejemplo :
$ tag_line = stripslashes ($ tag_line ) ;