Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2012, 10:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Insertar registros con string con comillas

Hola humanista:

Hay que tener cuidado al distinguir sobre el tratamiento que tienes que hacer en MySQL para los caracteres especiales y el tratamiento que le dan los lenguajes de programación (como PHP), ya que son cosas distintas. Este es un foro de MySQL, por lo que voy a enfocarme en estos, tu pregunta está enfocada a PHP, por lo que es recomendable que la publiques en el foro de este lenguaje:

http://www.forosdelweb.com/f18/

Ahora si, entrando en materia. En MySQL los caracteres especiales a los que tienes que darle un tratamiento especial para manejarlos en campos tipo texto serían la comilla sencilla ('), la comilla doble(") y la diagonal invertida (\).
La comilla sencilla y la comilla doble se usa para delimitar cadenas por lo que será necesario "matarlas" para poder manejarla como caracter y no como separador.
Si utilizas comillas sencillas como delimitador PUEDES UTILIZAR COMILLAS DOBLES dentro de la cadena sin darle tratamiento, pero no la comilla sencilla.

De la misma manera, si utilizas la comilla doble como delimitador PUEDES UTILIZAR LAS COMILLAS SENCILLAS dentro de la cadena sin darle tratamiento, pero no la comilla doble.

La diagonal invertida siempre deberá tener un tratamiento especial

Para "matar" la comilla puedes hacerlo poniendo una doble comilla sencilla ('') o poniendo (\').

MUCHO OJO, ES DOBLE COMILLA SENCILLA, NO UNA COMILLA DOBLE.

Checa este script:

Código MySQL:
Ver original
  1. DROP TABLE tabla;
  2. CREATE TABLE tabla (campo VARCHAR(60));
  3. ('caracteres especiales: !"#$%&/()=?¿´+{}.-,;^`¨~'),
  4. ('diagonal invertida: \\'),
  5. ('comilla simple: \''),
  6. ('comilla simple: '''),
  7. ("comilla simple: '"),
  8. ("comilla doble: \""),
  9. ('comilla doble: "'),
  10. ("comilla doble: """);
  11.  
  12. mysql> select * from tabla;
  13. +-------------------------------------------------+
  14. | campo                                           |
  15. +-------------------------------------------------+
  16. | caracteres especiales: !"#$%&/()=?┐┤+{}.-,;^`¿~ |
  17. | diagonal invertida: \                          |
  18. | comilla simple: '                               |
  19. | comilla simple: '                               |
  20. | comilla simple: '                               |
  21. | comilla doble: "                                |
  22. | comilla doble: "                                |
  23. | comilla doble: "                                |
  24. +-------------------------------------------------+
  25. 8 rows in set (0.00 sec)

Dale también un vistazo a esta liga:

http://dev.mysql.com/doc/refman/5.0/...ng-syntax.html

Saludos
Leo.