“Conocimientos Programación>Programación PHP /MySQL

No puedo insertar un apóstrofo en MySQL

2015/2/12
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 ) ;

Programación PHP /MySQL
Cómo configurar una base de datos de WordPress en mi página web
Cómo cambiar el formato de fecha en PHP
Cómo matar a dormir conexiones MySQL
Cómo reiniciar PHP en CentOS
Cómo contar el número de registros han sido actualizados para PHP
Cómo agregar un punto negro en PHP
Cómo reconstruir índices en MySQL
Cómo descargar un archivo en PHP
Conocimientos Informáticos © http://www.ordenador.online